【问题标题】:How to manage url routing in mvc4?如何在 mvc4 中管理 url 路由?
【发布时间】:2015-04-23 19:45:06
【问题描述】:

我正在处理 url 路由

  1. 我想在不更改 url 的情况下重定向页面。

当输入 url www.example.com/Default.aspx 时 url 显示相同但返回页面 Home/Index (Controller/Action)

  1. 我想用实际的 url 重定向页面。

第二个要求是当键入 www.example.com/Default.aspx 时在地址栏 Home/Index 中显示 url 并返回此页面

如何可能请详细描述。

提前谢谢你。

【问题讨论】:

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


    【解决方案1】:

    我认为最简洁的方法是使用 IIS 中的 URL 重写模块。但是,正如您询问在 MVC 中执行此操作时,我将首先介绍:

    实现1(当请求/default.aspx时返回/home/index. 将以下内容添加到您的路由表中:

    routes.MapRoute("HomepageDefault", "default.aspx", new { controller = "Home", action = "Index" });
    

    要实现 2,您需要重定向请求 - 最简单的方法是将路由设置到 actionresult,然后重定向它:

    routes.MapRoute("RedirectRoute", "default.aspx", new { controller = "Home", action = "Redirect" });
    

    然后在ActionResult中:

        public ActionResult Redirect()
        {
            return RedirectToAction("Index", "Home");
        }
    

    另一种方法是使用URL Rewrite Module in IIS 执行此操作。

    实现1:

        <rewrite>
          <rules>
            <rule name="Rewrite rule">
              <match url="^default.aspx$" />
              <action type="Rewrite" url="/home/index" />
            </rule>
          </rules>
        </rewrite>
    

    实现2:

        <rewrite>
          <rules>
           <rule name="redirect">
             <match url="^default.aspx$" />
             <action type="Redirect" url="/home/index" />
            </rule>
          </rules>
        </rewrite>
    

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 2016-06-20
      • 1970-01-01
      • 2017-10-30
      • 2017-12-13
      • 2014-03-18
      • 1970-01-01
      • 2021-03-04
      • 2014-06-30
      相关资源
      最近更新 更多