MVC路由不适用于特定值

时间:2016-03-29 16:42:01

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

我有这个路线配置

        routes.MapRoute(
            name: "catProducts",
            url: "Description/{action}/{id}",
            defaults: new { controller = "Home", action = "ProductDetail" }
        );



        routes.MapRoute(
            name: "Products2",
            url: "Category/{action}/{cat}/{subcat}",
            defaults: new { controller = "Home", action = "Products", subcat = UrlParameter.Optional }
        );

        routes.MapRoute(
            name: "Default",
            url: "",
            defaults: new { controller = "Account", action = "Login"}
        );

        routes.MapRoute(
            name: "Default1",
            url: "{controller}/{action}"

        );

当我尝试时

this thread

它的somtime重定向权限,但有时会进入登录页面

2 个答案:

答案 0 :(得分:0)

没有为B2BWebSite定义特定路线。因此,当您转到http://localhost/B2BWebSite/Description/ProductDetail/3时,它会检查默认路由,而您的Default routeAccount/Login,如下所示。这就是登录页面的原因。

 routes.MapRoute(
                name: "Default",
                url: "",
                defaults: new { controller = "Account", action = "Login"}
            );

关于,你有疑问它有时会起作用,有时也不会。可能与会话中的登录信息有关。如果用户已登录,则可能无法进入登录页面。

答案 1 :(得分:0)

您可能需要在第一条路线中指定ID。

routes.MapRoute(
        name: "catProducts",
        url: "Description/{action}/{id}",
        defaults: new { controller = "Home", action = "ProductDetail", id= UrlParameter.Optional  }
    );