通常,我希望在生成 URL 时使用默认路由(“向后”映射),即使我已经添加了备用或旧路由来达到某个操作(“转发”):
routes.MapRoute("Legacy", "legacy/home/index", // want forward-only mapping!
new { controller = "Home", action = "Index" };
routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
在这种情况下,我仍然希望在调用时使用默认路由:
@ActionLink("Index", "Home") // generates legacy URLs ;(
在线程:Routing legacy requests with and without querystring(issue #1)中,解决方案是为每个 legacy 路由添加两个 MapRoute 语句,或者在每个 ActionLink 调用中指定路由名称。
有没有办法定义仅用于 URL -> 操作映射的路由,而不是相反的路由?