.NET MVC自定义路由(.NET MVC custom routing)

2019-09-01 05:21发布

我想知道如果我可以创建一个路由图比控制器多一个更高的水平。 典型的路由将包括“/控制器/操作/ 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