Есть ли способ сообщить Razor (движок просмотра DNN) использовать другую папку представлений для модуля MVC?

Я пытаюсь использовать несколько папок для своих представлений в пользовательском модуле MVC для DNN. Цель состоит в том, чтобы выбрать тему в настройках модуля, а затем, в зависимости от настройки, использовать другую папку просмотра (т.е. использовать разные файлы cshtml для действий). Есть ли способ сказать Razor, что он должен сначала искать другие места? (Могу ли я использовать ViewLocationExpander в DNN для своего модуля?) Спасибо!


person Niels Mittelstädt    schedule 13.05.2021    source источник


Ответы (1)


Я понимаю, что вы хотите иметь какие-то настройки приложения и использовать MVC для выбора представления для вас. Я считаю, что это возможно, но есть более простой и низкотехнологичный способ сделать это, если использование @RenderPage() или @RenderPartial() имеет смысл для того, что вы пытаетесь сделать.

Итак, представьте, что вы начинаете в _index.cshtml

Вы можете либо разместить свои файлы в папках, либо построить путь (представьте, что настройка выглядит примерно так: Path = live или staging):

  @RenderPage(myApp.Settings.Path + "/_List-Filtered.cshtml",
    title = "No filters", 
    index = myIndex
  )

Или вместо этого напрямую измените имя файла

@{
  string myViewname = "Person";
}
  @RenderPage("_List__" + myViewName + "--Filtered.cshtml")
person Jeremy Farrance    schedule 25.05.2021