ASP.NET MVC EditorTemplate sub folders

asp.net-mvc, razor, razorgenerator

Solution

The framework won't look there, use local EditorTemplate folders instead, e.g. `Views/Department/EditorTemplates`.

Editor templates are located by the view engine, which first looks in `~/Views/{1}/{0}.cshtml` and then in `~/Views/Shared/{0}.cshtml`.

For example, if the controller is `Department` and the model is a `String`, the framework asks for `EditorTemplates/String`, and the view engine looks in `~/Views/Department/EditorTemplates/String.cshtml` and `~/Views/Shared/EditorTemplates/String.cshtml`.

Problem

I am working on, what I would consider to be, a large ASP.NET MVC website. Currently there are nearly 100 editor templates (all for 1 controller), and this number will grow. What I want to accomplish is organize my views to make them easier to find and version. This 'version' step is what will make the views multiply as time goes on. you can think of this project as an Question/Answer application, where Exams are created, and can be pulled up later. Basically, for this particular project, the views/EditorTemplates can't really change once in production, so a new copy must be created for future use. References to the old view would still exist, making that exam look and behave the way it did a year ago. Likewise, new exams will automatically pick up the new version of the view, and use that version. I would like to have this type of structure, but I am up for other ideas. ``` Views/Shared/EditorTemplates/Common Views/Shared/EditorTemplates/Common/v2 Views/Shared/EditorTemplates/Common/v3 Views/Shared/EditorTemplates/Department Views/Shared/EditorTemplates/Department/v2 ``` Note: Even though I will have versioned subdirectories, which implies that I will have multiple versions of the same model and template, the new files will have a unique file name. Also, I am also attempting to use the Razor Generator to compile my views. Not sure if that can be extended to add the additional EditorTemplate search paths or not.

Original source