我正在重建从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。我不确定这样做的最佳方法吗?
答案 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