【发布时间】:2017-03-09 15:38:03
【问题描述】:
在 ASP.NET MVC 路由中,如果你想支持遗留路由,可以添加如下内容:
routes.MapRoute("SiteDefault", "Default.aspx",
new { controller = "Home", action = "Index" });
很好,但是当我使用@Url.Action 为 Home 控制器索引操作生成链接时,如下所示:
<a href="@Url.Action("Index", "Home")">Home</a>
生成的网址是/Default.aspx,而不是/Home。
如何让助手生成/Home 并仍然支持/Default.aspx 的路由映射?
我知道我可以创建物理 Default.aspx 文件并在其中进行永久重定向,但我试图避免添加不必要的文件。
或者有没有办法为UrlHelper 编写扩展来做到这一点?
【问题讨论】:
-
为什么不将
MapPageRoute用于旧版网络表单文件?MapRoute方法适用于 MVC 路由,因此适用于 MVC:routes.MapRoute("SiteDefault", "{controller}/{action}", new { controller = "Home", action = "Index" });和 webforms:routes.MapPageRoute("DefaultLegacy", "WebForm/Default", "~/WebForm/Default.aspx")
标签: asp.net-mvc url-rewriting routes url-routing asp.net-mvc-routing