我想知道是否可以创建一个比控制器更高级别的路由映射。典型的路由包括“/ controller / action / id”。我正在寻找的是像“section / controller / action / id”这样的东西。或“controller / section / action / id”。我怎么能这样做?

有帮助吗?

解决方案

没问题。只需创建一个URL,例如

<代码>路径/到/我的/应用/ {控制器} / {行动} / {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路由调试器查找确定

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top