Skip to main content
 首页 » 编程设计

c#之从 ASP.NET WebForms 到 ASP.NET MVC 时维护 URL

2024年02月20日28txw1958

我正在将旧的 ASP.NET WebForms 应用程序转换为 ASP.NET MVC 4。一切都很好,只是我需要保持与特定 URL 的向后兼容性。我找到了 this great post on using UrlRewrite ,但遗憾的是,这不是我可以指望的(这个应用程序被部署到很多服务器)。在底部,他提到如果您只有一小组 URL 需要处理,则可以使用路由,但没有提供任何示例。

因为我只有一个 url 需要处理,所以我认为路由是一种简单的方法,但是除了默认路由 /Controller/Action/{id} 之外我从来没有处理过任何东西,所以我正在寻找一个解决方案

  1. 没有外部依赖
  2. 将在旧的蹩脚浏览器上工作
  3. 我的应用是否知道这个旧 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,...){} 
}