MVC路由 - 重新路由到另一个URI的特定URI

问题描述:

我们有几个链接显示在谷歌地方有一个不正确的/旧的格式。这些正在固定在Google地方一侧。在这些变化传播之前,我试图在其上添加乐队帮助,并将破坏的URI重定向到好的URI。MVC路由 - 重新路由到另一个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=拉斯维加斯拉斯维加斯”

+1

我相信你要找的是你的控制器里面的'Return RedirectToAction(...)'。 –

+0

@JohnieKarr - 这很简单,为我工作。添加为答案,我会接受。谢谢。 – FreeMars

+0

我很高兴它有帮助。我已经发布它作为答案。 –

我相信你正在寻找的是你的控制器内的Return RedirectToAction(...)

处理此问题的最佳方法是在IIS级别。如果您尚未安装,请安装URL Rewrite Module,然后您可以将这两个URL永久重定向到正确的URL。然后,IIS将自动重定向,并且您的应用程序不必涉及或关心。

+0

我给了这个尝试,我可以看到它对我想要处理的事情有点复杂。 – FreeMars