ASP.NET MVC EditorTemplate подпапки
Я работаю над большим веб-сайтом ASP.NET MVC. В настоящее время существует около 100 шаблонов редактора (все для одного контроллера), и это число будет расти.
То, чего я хочу добиться, это организовать свои взгляды, чтобы их было легче найти и откорректировать. Этот шаг "версия" - то, что заставит представления умножиться с течением времени. Вы можете думать об этом проекте как о приложении "Вопрос / Ответ", в котором создаются экзамены, и их можно будет позже обработать. По сути, для этого конкретного проекта 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
Примечание. Несмотря на то, что у меня будут подкаталоги с версиями, что означает, что у меня будет несколько версий одной модели и шаблона, новые файлы будут иметь уникальное имя файла. Кроме того, я также пытаюсь использовать Razor Generator для компиляции своих представлений. Не уверен, что это можно расширить, чтобы добавить дополнительные пути поиска EditorTemplate или нет.
2 ответа
Фреймворк там не будет выглядеть, вместо этого используйте локальные папки EditorTemplate, например Views/Department/EditorTemplates
,
Шаблоны редактора расположены механизмом просмотра, который сначала просматривает ~/Views/{1}/{0}.cshtml
а затем в ~/Views/Shared/{0}.cshtml
,
Например, если контроллер Department
и модель String
, рамки просит EditorTemplates/String
, и двигатель представления смотрит в ~/Views/Department/EditorTemplates/String.cshtml
а также ~/Views/Shared/EditorTemplates/String.cshtml
,
Ответ Макса - гораздо более элегантный и простой ответ. Если вы не хотите этого делать И хотите много работы, вы можете написать свой собственный ViewEngine.