我想知道我是否可以创建一个比 Controller 高一级的路由映射。典型的路由将包括“/controller/action/id”。我正在寻找的是“部分/ Controller / Action /id”或“ Controller /部分/ Action /id”之类的东西。我该怎么做?
最佳答案
没问题。只需创建一个路由,例如,其 URL 是
path/to/my/application/{controller}/{action}/{id}
...并像往常一样提供默认 Controller 和操作。
一个具体的例子是
context.MapRoute(
"Admin_default",
"admin/{controller}/{action}/{id}",
new { controller = "AdminHome", action = "Index", id = "" }
);
例如,这将映射以下 URL:
/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 = "" }
);
...那么 Admin 路由中的 Controller 操作方法也可以通过此路由访问。使用 URL Routing Debugger确定地找出答案。
关于c# - .NET MVC 自定义路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1623605/