通常,我希望生成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调用中指定路由名称。
是否有一种方法可以定义仅用于->操作映射的路由,而不是反向映射?
发布于 2012-08-14 01:16:25
我找不到一种方法让路由语句只应用一种方式,所以我安装了IIS重写模块。这可以透明地重写URL,或者301-在遗留URL的情况下重定向它。
这是一个比编辑global.asax更易于维护的解决方案。
https://stackoverflow.com/questions/11911392
复制相似问题