我想知道如果我可以创建一个路由图比控制器多一个更高的水平。 典型的路由将包括“/控制器/操作/ ID”。 我所寻找的是类似“节/控制器/操作/ ID”或“控制器/节/动作/ ID”。 我怎样才能做到这一点?
Answer 1:
没问题。 只要创建一个路由URL的是,例如
path/to/my/application/{controller}/{action}/{id}
...并提供一个默认的控制器和行动如常。
这方面的一个具体的例子是
context.MapRoute(
"Admin_default",
"admin/{controller}/{action}/{id}",
new { controller = "AdminHome", action = "Index", id = "" }
);
这将映射,例如,以下网址:
/admin/ => AdminHomeController.Index
/admin/adminhome/ => AdminHomeController.Index
/admin/other/ => OtherController.Index
/admin/statistics/view/50 => StatisticsController.View(50)
但是请注意,如果你也有一个默认路由,例如像这样:
context.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
...然后在管理路由控制器操作方法还可以通过这条路线到达。 使用URL路由调试 ,找出肯定的。
文章来源: .NET MVC custom routing