Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 组织与管理相关的控制器和视图页_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 组织与管理相关的控制器和视图页

Asp.net mvc 组织与管理相关的控制器和视图页,asp.net-mvc,Asp.net Mvc,管理部分位于www.example.com/admin 所以我有一个管理员控制器 但我也有与用户管理相关的控制器和配置控制器,我希望url类似: www.example.com/admin->adminController www.example.com/admin/user/->adminUserController www.example.com/admin/user/edit www.example.com/admin/user/add 我讨厌AdminUserController这个名字

管理部分位于www.example.com/admin

所以我有一个管理员控制器

但我也有与用户管理相关的控制器和配置控制器,我希望url类似:

www.example.com/admin->adminController

www.example.com/admin/user/->adminUserController www.example.com/admin/user/edit www.example.com/admin/user/add

  • 我讨厌AdminUserController这个名字,有什么建议吗
  • 查看页面的组织方式如下:

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

    因此,只需手动引用视图页面,如返回视图(“~/views/admin/user/add”)


    我还有哪些其他选项?

    您可以在同一个项目中使用多个选项(在MVC2中)。你可以有一个管理区。这使您能够以合理的方式组织所有控制器,并解决命名问题:在“管理”区域中有一个“用户控制器”。

    您可以在同一项目中使用多个控制器(在MVC2中)。你可以有一个管理区。这使您能够以合理的方式组织所有控制器,并解决命名问题:在“管理”区域中有一个“用户控制器”。

    控制器/视图名称与物理位置和路由之间没有直接关系,您可以在Global.asax中对此进行控制,如果您有AdminController,则可以定义如下路由

    example.com/Admin/Manage/
    
    在您的全球范围内,您将:

    routes.MapRoute(
                    "AdminSection",
                    "Admin/Manage/{action}/{id}",
                    new { controller = "AdminController", action = "Index", id = "" }
                );
    
    因此,当输入一个类似example.com/Admin/Manage/的路由时,您将重定向到所需的控制器和操作,严格来说,控制器的名称不是路由上的名称。
    希望有帮助。

    控制器/视图名称和物理位置与您的路由之间没有直接关系,您可以在Global.asax中对此进行控制,如果您有AdminController,您可以定义如下路由

    example.com/Admin/Manage/
    
    在您的全球范围内,您将:

    routes.MapRoute(
                    "AdminSection",
                    "Admin/Manage/{action}/{id}",
                    new { controller = "AdminController", action = "Index", id = "" }
                );
    
    因此,当输入一个类似example.com/Admin/Manage/的路由时,您将重定向到所需的控制器和操作,严格来说,控制器的名称不是路由上的名称。 希望能有帮助