组织管理员相关的控制器和查看页面

时间:2009-12-01 17:19:33

标签: asp.net-mvc

管理部分位于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

  1. 我讨厌名字AdminUserController,有什么建议吗?
  2. 查看页面的组织方式如下:

    /视图/管理 /视图/管理/用户/

    所以只需手动引用视图页面就像返回视图(“〜/ views / admin / user / add”);

    我还有其他选择吗?

2 个答案:

答案 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/之类的路由时,您将重定向到所需的控制器和操作,控制器的名称不是路由中的名称。 希望它有所帮助。