asp.net-mvc – 将ASP.NET Webforms url转换为MVC路由

我正在使用新的MVC应用程序替换旧的ASP.NET webforms应用程序.但是,我有一个问题,用户有一个特定页面的旧链接,我想自动转换为正确的MVC路由.

旧址:http://mysite.com/ticketsdetail.aspx?id=12345

新网站:http://mysite.com/tickets/details/12345

在MVC路由中是否有一种方法可以捕获旧URL并将其转换为新URL?

编辑:

好的,使用IIS7 URL重写执行此操作的web.config条目是:

<rewrite>
  <rules>
    <rule name="Ticket page redirect" stopProcessing="true">
      <match url="ticketsdetail.aspx$" />
      <conditions>
        <add input="{QUERY_STRING}" pattern="id=(\d*)$" />
      </conditions>
      <action type="Redirect" url="Calls/Tickets/{C:1}" appendQueryString="false" redirectType="Temporary" />
    </rule>
  </rules>
</rewrite>

最佳答案 不要在代码中这样做是我的建议,除非你绝对需要. Scott Hanselman有一篇很好的文章介绍了如何使用IIS Url Rewrite在web.conf中完成所需的操作.

Article Here

这也是你的web.config中的规则:

<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
    <match url="^ticket/details/([^/]+)/?$" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="ticketdetails.aspx?id={R:1}" />
</rule>
点赞