Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 ASP.NET MVC路由到操作_Asp.net Mvc_Asp.net Mvc 4_Url Redirection_Redirect - Fatal编程技术网

Asp.net mvc ASP.NET MVC路由到操作

Asp.net mvc ASP.NET MVC路由到操作,asp.net-mvc,asp.net-mvc-4,url-redirection,redirect,Asp.net Mvc,Asp.net Mvc 4,Url Redirection,Redirect,在ASP.NET MVC中执行路由时,我很难实现我想要实现的目标。 我想做的是: 键入http://localhost/MyWebsite/,我想重定向到http://localhost/MyWebsite/Login/(此处暗示重定向到操作索引) 键入http://localhost/MyWebsite/MyAction,我想重定向到http://localhost/MyWebsite/Login/MyAction 使用文件RouteConfig.cs中的以下行实现了第1点: routes.M

在ASP.NET MVC中执行路由时,我很难实现我想要实现的目标。 我想做的是:

  • 键入
    http://localhost/MyWebsite/
    ,我想重定向到
    http://localhost/MyWebsite/Login/
    (此处暗示重定向到操作
    索引
  • 键入
    http://localhost/MyWebsite/MyAction
    ,我想重定向到
    http://localhost/MyWebsite/Login/MyAction
  • 使用文件RouteConfig.cs中的以下行实现了第1点:

    routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional });
    
    但我无法完成第二点。请注意,用户并非来自控制器中的其他操作,而是在其浏览器中实际键入地址


    谢谢您的帮助。

    由于
    /MyWebsite/Login
    /MyWebsite/MyAction
    在URL中都有两个段,它们都与您定义的路线相匹配

    您可以使用路由约束仅将
    /MyWebsite/Login
    匹配到第一个点,然后是修改的第二个路由映射:

         routes.MapRoute(
             name: "Default",
             url: "MyWebsite/Login/",
             defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional });
    
    
         routes.MapRoute(
                 name: "Actions",
                 url: "MyWebsite/{action}/",
                 defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional });