我已经在一个项目上花了一段时间,我最终对不同的模型有很多看法。我是否可以将这些视图组织到子文件夹中。所以,为了清楚起见,我想做以下事情:
控制器:
MyControllers(Folder)->
MyFirstController.cs
MYSubcontroller(Folder)->
MySubController.cs
查看:
MyFirst(Folder)->
Index.cshtml
MYSub(Folder)->
Index.cshtml
答案 0 :(得分:0)
最基本的选项是您的控制器路由在返回时明确指定视图:
return View("PATH-TO-YOUR-VIEW");
但是我不喜欢这种方法,因为你失去了很好的内置MVC约定。
默认情况下,Razor View Engine在查找视图时将使用以下约定:
~/Views/{1}/{0}.cshtml
~/Views/{1}/{0}.vbhtml
~/Views/Shared/{0}.cshtml
~/Views/Shared/{0}.vbhtml
考虑到这一点,如果您有一个名为MySubController
的控制器,其默认Index
操作,您通常会有一个视图文件:
~/Views/MySub/Index.cshtml
答案 1 :(得分:0)
您可以将视图和控制器放在任何位置。您可以在App_Start事件上轻松自定义视图路径。请参阅本主题中的答案:Can I specify a custom location to "search for views" in ASP.NET MVC?
我建议使用标准的项目结构和路径。这将使最终使用您的代码的其他开发人员的生活更轻松。