【问题标题】:Visual Studio MVC URL RewriteVisual Studio MVC URL 重写
【发布时间】:2015-07-24 15:45:27
【问题描述】:

当我路由到 MVC 路由配置文件中的地址时,它可以工作。但是栏中的 URL 不会相应地更新,尽管内容被路由,但它保持不变。

routes.MapRoute(
    "User",                                         
    "Profile{id}",                          
    new { controller = "Home", action = "Details" }
);

它将localhost/profile4 重新路由到localhost/home/details,但栏中的 URL 没有更新。

【问题讨论】:

  • 更新到什么?你是如何创建你的网址的?您希望它显示什么以及它实际显示什么。
  • 栏(显示 URL 的地址栏),我没有创建 URL。我想将地址栏中的 URL 更新为我要路由到的 URL。
  • 当我在地址栏中输入 www.website.com/profile4 时,当它路由到我想要的位置时,我也想在栏中更新它的地址,就像它应该在地址栏中看起来像 www.website。 com/home/详情
  • 我想你想改用 URL Rewrite:iis.net/downloads/microsoft/url-rewrite
  • 这不是 MVC routing 所做的。 MVC 路由采用 URL 并路由到您的控制器+操作。它不会改变浏览器[地址栏],因为浏览器只有一个请求+响应。听起来您想返回 HTTP 302 并在响应中提供新 URL 或使用 javascript 重定向。

标签: asp.net-mvc asp.net-mvc-4


【解决方案1】:

您可以在控制器中创建两个带有两条路由的操作并进行重定向。

routes.MapRoute(
    "User",                                         
    "Profile{id}",                          
    new { controller = "Home", action = "ProfileRedirect" }
);

routes.MapRoute(
    "Details",                                         
    "Details",                          
    new { controller = "Home", action = "Details" }
);

public class HomeController: Controller
    {
        public ActionResult ProfileRedirect(int id)
        {
            return RedirectToAction("Details");
        }
    }

另一种解决方案是在全局级别创建一些 HttpHandler 和重定向请求。

【讨论】:

    猜你喜欢
    • 2013-05-10
    • 2011-04-08
    • 1970-01-01
    • 2011-04-23
    • 2016-03-28
    • 2012-06-03
    • 2015-07-15
    • 2012-07-14
    • 2011-08-24
    相关资源
    最近更新 更多