将ASP页面路由到ASP.NET MVC中的Action

时间:2014-08-05 17:14:09

标签: asp.net asp.net-mvc-4 asp.net-mvc-routing

我正在重建从VB .NET到MVC 4 ASP.NET的站点。在旧项目中,有一个系统向用户发送电子邮件,在该电子邮件中有一个超链接,可以指示用户查看特定任务。我想让所有旧电子邮件与新重新创建的网站一起使用。以下是旧系统中超链接的示例:

http://pppweb/accounting/ap/default.asp?etaskid=32698

以下是超链接在新系统上的显示示例。

http://pppweb/accounting/ap/ApIssues/Task/32698

所以我想我可以在我的MVC项目中创建一个default.asp页面并尝试解析taskID。我不确定这样做的最佳方法吗?

1 个答案:

答案 0 :(得分:1)

我建议您不要在项目中添加经典的.asp(不是.aspx?)页面,因为我甚至不确定是否有办法做到这一点。假设您正在运行IIS7,您可以映射网址:

http://pppweb/accounting/ap/default.asp

由MVC处理,方法是将以下行添加到web.config文件中:

<configuration>
...
   <system.webServer>
...
      <handlers>
...
         <add name="aspnet htm" path="account/api/default.asp" verb="*" type="System.Web.Mvc.MvcHttpHandler" preCondition="integratedMode" />

然后,为该URL添加路由,请求应解析为您指定的正常路由参数。从那时起,您应该能够轻松地从查询字符串中访问etaskid

编辑:

或者,如果网址对您很重要,您可以使用UrlRewrite模块(也是IIS 7功能)指定从旧格式网址到新格式网址的重定向规则。您可以在此处阅读:http://www.iis.net/downloads/microsoft/url-rewrite