【问题标题】:ASP.NET MVC routing to actionASP.NET MVC 路由到操作
【发布时间】:2014-08-21 16:25:04
【问题描述】:

在 ASP.NET MVC 中进行路由时,我无法实现我想要实现的目标。 我想做的是:

  1. 输入http://localhost/MyWebsite/时,我想重定向到http://localhost/MyWebsite/Login/(此处隐含重定向到动作Index
  2. 输入http://localhost/MyWebsite/MyAction时,我想重定向到http://localhost/MyWebsite/Login/MyAction

第 1 点是使用文件 RouteConfig.cs 中的以下行实现的:

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

但我无法完成第 2 点。请注意,用户并非来自控制器中的其他操作,而是实际在其浏览器中键入地址。

感谢您的帮助。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 url-redirection redirect


    【解决方案1】:

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

    您可以使用 Route Constraint 仅将 /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 });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      相关资源
      最近更新 更多