在RouteConfig.cs文件中映射路由

时间:2014-01-27 14:36:35

标签: c# asp.net-mvc-4

我正在使用MVC4,我在RouteConfig.cs文件中有以下代码。

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

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

由于某些未知原因,上述代码将所有网站链接(如Home,Contact Us等)更改为“localhost / User / Home”。

我想要实现的目标: 我添加第一个MapRoute的原因是,当会员登录帐户时,我希望“User /”出现在控制器名称之前,仅供会员访问的所有页面/网址。

1 个答案:

答案 0 :(得分:0)

您的第一条路线与第二条路线的路线相同(参数)。它将检查从您声明的第一条路线开始的所有路线。将使用与给定参数匹配的第一个路径。

所以在你的情况下,如果你传递一个控制器,动作和一个id,那么第一条路线将会被使用,你将永远得到这个网址或链接:“localhost / User / Home”。

编辑: 如果您想达到您想要的效果,请将用户的所有内容放在新的用户区域中,并在路线中提及。