Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 如何在mvc4中管理url路由?_Asp.net Mvc 4_Url_Asp.net Mvc Routing - Fatal编程技术网

Asp.net mvc 4 如何在mvc4中管理url路由?

Asp.net mvc 4 如何在mvc4中管理url路由?,asp.net-mvc-4,url,asp.net-mvc-routing,Asp.net Mvc 4,Url,Asp.net Mvc Routing,我正在研究url路由 我想重定向页面而不更改url 当键入url www.example.com/Default.aspx时,url显示相同,但返回主页/索引(控制器/操作) 我想用实际的url重定向页面 第二个要求是键入www.example.com/Default.aspx,此时在地址栏Home/Index中显示url并返回此页面 如何可能请详细描述 提前谢谢。我认为最干净的方法是在IIS中使用URL重写模块。但是,当您询问如何在MVC中实现这一点时,我将首先介绍: 要达到1(当请求/def

我正在研究url路由

  • 我想重定向页面而不更改url
  • 当键入url www.example.com/Default.aspx时,url显示相同,但返回主页/索引(控制器/操作)

  • 我想用实际的url重定向页面
  • 第二个要求是键入www.example.com/Default.aspx,此时在地址栏Home/Index中显示url并返回此页面

    如何可能请详细描述


    提前谢谢。

    我认为最干净的方法是在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");
        }
    
    另一种方法是使用

    要实现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>