【发布时间】:2015-10-13 17:41:10
【问题描述】:
我们在 Google 地方信息中显示了一些格式不正确/旧的链接。这些正在 Google Places 方面进行修复。在这些更改传播之前,我会尝试对其进行创可贴并将损坏的 URI 重定向到好的 URI。
我需要重新路由两个 URI: 1.http://www.BusinessName/Locations/Location?name=Vegas 和 2.http://www.BusinessName/Locations/Vegas 并将它们发送到单个工作 URI, http://www.BusinessName/Locations/Location?name=拉斯维加斯拉斯维加斯(注意不同的名称)
在 ASP 时代,我只需要做一个 response.redirect,但我知道这在 MVC 中是不可以的。
我的 RouteConfig.cs 默认路由低于标准。 {name} 参数是位置。
routes.MapRoute(
"LocationDetail",
"Locations/{name}",
new { controller = "Location", action = "Location" });
LocationController 还将处理格式http://www.BusinessName/Locations/Location?name=Vegas。
我完全了解如何将路由格式更改为不同的顺序,例如 {controller}、{id}、{action},并且我已经构建了一些路由来访问一些静态内容,但我没有尝试过曾简单地将“http://www.BusinessName/Locations/Location?name=Vegas”重新路由到“http://www.BusinessName/Locations/Location?name=LasVegas”
【问题讨论】:
-
我相信您正在寻找的是控制器内部的
Return RedirectToAction(...)。 -
@JohnieKarr - 这很简单,对我有用。添加为答案,我会接受。谢谢。
-
我很高兴它有帮助。我已将其发布为答案。
标签: asp.net-mvc routes asp.net-mvc-routing