路由可以为控制器的名称添加前缀吗?网址和控制器名称冲突的问题

时间:2010-01-19 18:57:13

标签: c# asp.net-mvc asp.net-mvc-routing

我希望我的网址结构如下:

www.stackoverflow.com/order/...

www.stackoverflow.com/admin/order/...

现在以上两种都使用不同的控制器。

/controllers/ordercontroller
/controllers/admin/ordercontroller

有没有办法可以拥有这个网址结构?

我在想我是否可以这样做:

/controllers/ordercontroller
/controllers/admin/adminordercontroller

不知何故,在我的路线中,所有管理员相关控制器的名称前缀为'admin'?

1 个答案:

答案 0 :(得分:2)

当然,没问题。请记住,您也可以在路线中使用静态文本。

routes.MapRoute("admin", "admin/{controller}/{action}/{id}", ....

routes.MapRoute("normal", "{controller}/{action}/{id}", ...

这里的关键是要确保管理路由是第一个,以便它首先在匹配URL时破解。否则,“正常”路线将吞下它,因为它也匹配。