ASP.NET MVC EditorTemplate子文件夹

Jay*_*ney 10 asp.net-mvc razor razorgenerator

我正在研究,我认为是一个大型的ASP.NET MVC网站.目前有近100个编辑器模板(全部用于1个控制器),这个数字将会增长.

我想要完成的是组织我的视图,使它们更容易查找和版本.随着时间的推移,这个"版本"步骤将使视图成倍增加.您可以将此项目视为问题/答案应用程序,其中创建了考试,并且可以在以后提取.基本上,对于此特定项目,views/EditorTemplates在生产中无法真正更改,因此必须创建新副本以供将来使用.对旧视图的引用仍然存在,使得该考试的外观和行为与一年前的方式相同.同样,新考试将自动选择新版本的视图,并使用该版本.我想有这种结构,但我还有其他的想法.

Views/Shared/EditorTemplates/Common
Views/Shared/EditorTemplates/Common/v2
Views/Shared/EditorTemplates/Common/v3
Views/Shared/EditorTemplates/Department
Views/Shared/EditorTemplates/Department/v2
Run Code Online (Sandbox Code Playgroud)

注意:即使我有版本化的子目录,这意味着我将拥有相同模型和模板的多个版本,新文件将具有唯一的文件名.此外,我还试图使用Razor Generator来编译我的视图.不确定是否可以扩展以添加其他EditorTemplate搜索路径.

Max*_*oro 17

框架不会在那里看,使用本地EditorTemplate文件夹,例如Views/Department/EditorTemplates.

编辑器模板由视图引擎定位,首先查看~/Views/{1}/{0}.cshtml然后进入~/Views/Shared/{0}.cshtml.

例如,如果控制器是Department,并且模型是a String,框架要求EditorTemplates/String,并且视图引擎查找~/Views/Department/EditorTemplates/String.cshtml~/Views/Shared/EditorTemplates/String.cshtml.

  • @ChrisMoschini `EditorTemplates/String.cshtml` 替换了 `{0}` (2认同)