管理部分位于www.example.com/admin
所以我有一个admincontroller。
但我也有用户管理相关的控制器和配置控制器,我希望网址如下:
www.example.com/admin - > adminController
www.example.com/admin/user/ - > adminUserController www.example.com/admin/user/edit www.example.com/admin/user/add
查看页面的组织方式如下:
/视图/管理 /视图/管理/用户/
所以只需手动引用视图页面就像返回视图(“〜/ views / admin / user / add”);
我还有其他选择吗?
答案 0 :(得分:4)
您可以在同一个项目中使用多个areas(在MVC 2中)。你可以有一个管理区域。这使您可以以合理的方式组织所有控制器,并修复命名问题:您在“管理”区域中有一个“UserController”。
答案 1 :(得分:1)
Controller / Views Name与物理位置和Route之间没有直接关系,你可以在Global.asax中控制它,如果你有一个AdminController,你可以定义一个像
这样的路径example.com/Admin/Manage/
在您的全球范围内将会像:
routes.MapRoute(
"AdminSection",
"Admin/Manage/{action}/{id}",
new { controller = "AdminController", action = "Index", id = "" }
);
因此,当输入类似于此示例的AD /Admin/Manage/之类的路由时,您将重定向到所需的控制器和操作,控制器的名称不是路由中的名称。 希望它有所帮助。