【问题标题】:MVC Routing - Reroute Specific URI to Another URIMVC 路由 - 将特定 URI 重新路由到另一个 URI
【发布时间】: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


【解决方案1】:

我相信您在控制器中寻找的是Return RedirectToAction(...)

【讨论】:

    【解决方案2】:

    处理此问题的最佳方法是在 IIS 级别。如果您还没有 URL Rewrite Module,请安装它,然后您可以设置从这两个 URL 到正确的 URL 的永久重定向。然后,IIS 将自动重定向,您的应用程序不必参与或关心。

    【讨论】:

    • 我试了一下,发现它对比我要处理的更复杂的事情有用。
    猜你喜欢
    • 2021-08-23
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多