我正在将旧的 ASP.NET WebForms 应用程序转换为 ASP.NET MVC 4。一切都很好,只是我需要保持与特定 URL 的向后兼容性。我找到了 this great post on using UrlRewrite ,但遗憾的是,这不是我可以指望的(这个应用程序被部署到很多服务器)。在底部,他提到如果您只有一小组 URL 需要处理,则可以使用路由,但没有提供任何示例。
因为我只有一个 url 需要处理,所以我认为路由是一种简单的方法,但是除了默认路由 /Controller/Action/{id} 之外我从来没有处理过任何东西,所以我正在寻找一个解决方案
- 没有外部依赖
- 将在旧的蹩脚浏览器上工作
- 我的应用是否知道这个旧 url 并不重要
旧的 URI
https://www.mysite.com/default.aspx?parm1=p1&parm2=p2&etc=soforth
新的 URI
https://www.mysite.com/Home/Index/?parm1=p1&parm2=p2&etc=soforth
背景:此应用程序被部署到不同位置的许多服务器。还有其他应用程序(我无法更新)在网络浏览器控件中显示“旧 URI”,因此我需要它们在应用程序更新到 asp.net mvc 后继续工作。
请您参考如下方法:
像下面这样的东西应该可以工作(未经测试,可能需要使这条路线成为第一条路线之一):
routes.MapRoute(
"legacyDefaultPage",
"default.aspx",
new {Controller = "Legacy", Action="Default"});
class LegacyController {
ActionResult Default (string param1,...){}
}
