通常我想要生成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(问题#1)中,解决方案是为每个旧路由添加两个MapRoute语句,或在每个ActionLink调用中指定路由名称。
有没有办法为网址定义仅的路线 - >动作映射,而不是反向?
答案 0 :(得分:0)
我找不到让路由语句只应用一种方法的方法,所以我安装了IIS URL Rewrite模块。这可以透明地重写URL,或者在遗留URL的情况下301重定向。
它比编辑global.asax更易于维护。