路由正确的方式在.net MVC4

本文关键字:net MVC4 方式 路由 | 更新日期: 2023-09-27 18:12:46

我正在开发一个管理面板,我已经创建了一个名为" admin "的新区域开始。现在在我的adminareregistration。cs文件中路由是这样的

context.MapRoute(
    "Admin_default",
    "Admin/{controller}/{action}/{id}",
     new { controller = "Index", action = "Index", id = UrlParameter.Optional }
);

所以我可以到达管理面板http://{mydomain}/Admin/

我有2个控制器。IndexController来管理登录、登录等。UserController用于管理列出用户、添加新用户等。

当我尝试访问用户列表的url将看起来像http://{mydomain}/Admin/User/List/这是相当好看的url。但是,当我尝试访问登录一个新的管理员的url将是这样的:http://{mydomain}/Admin/索引/Signin/

但是我不喜欢第二个url。我可以访问索引控制器如http://{mydomain}/Admin/Signin/和其他像第一个。

你会如何处理这种情况?

路由正确的方式在.net MVC4

对于你的Signin url,如果你在Indexcontroller中有一个Signin Action设置,在你的"Admin_default"路由之前设置一个路由,像这样:

context.MapRoute(
    "Admin_Signin",
    "Admin/SignIn",
     new { controller = "Index", action = "Signin" }
);

你可以用ActionLinks链接到这个动作,像这样:

@Html.ActionLink("Sign-in here", "Signin", new { controller = "Index", action = "Signin" })