MVC视图的子文件夹

时间:2013-05-16 07:42:42

标签: c# asp.net-mvc

我的常规网址布局如下所示:

http://localhost:1337/Site1

http://localhost:1337/Site2

http://localhost:1337/Site3

现在我想在/ Views /目录中的单独子文件夹中创建管理。因此URL应如下所示:

http://localhost:1337/Administration/AdminSite1 http://localhost:1337/Administration/AdminSite2 http://localhost:1337/Administration/AdminSite3

这显然不适用于在Views目录中创建子文件夹。

这是我的观察文件夹的样子:

/Views/Site1/Index.cshtml

/Views/Site2/Index.cshtml

/Views/Site3/Index.cshtml

/Views/Administration/AdminSite1/Index.cshtml

/Views/Administration/AdminSite2/Index.cshtml

/Views/Administration/AdminSite3/Index.cshtml

相应的控制器文件夹:

/Controllers/Site1Controller/

/Controllers/Site2Controller/

/Controllers/Site3Controller/

/Controllers/Administration/AdminSite1Controller/

/Controllers/Administration/AdminSite2Controller/

/Controllers/Administration/AdminSite3Controller/

我该如何处理?

1 个答案:

答案 0 :(得分:2)

您实际需要的是Areas(ASP.NET MVC术语,有时在其他MVC框架中称为“模块”)。

见这里:http://msdn.microsoft.com/en-us/library/ee671793(v=vs.100).aspx

简而言之,Area会让你拥有控制器&特定于“区域”的视图,如下所示:

常规结构(默认区域):

/Models
/Controllers
/Views/[Controller]/[Action].cshtml

'管理员'区域(例如):

/Areas/Admin/Models
/Areas/Admin/Controllers/
/Areas/Admin/Views/[Controller]/[Action].cshtml

在路由方面,您通常需要通过Global.asax中的“注册”区域手动配置它。