Искать .cshtml в нескольких местах в MVC 3? - PullRequest
5 голосов
/ 23 июня 2011

Когда пользователь заходит на мой сайт, в строке запроса может быть передано template=foo. Это значение проверяется и сохраняется в Session.

Мой макет файла выглядит так:

- Views/
  - Templates/
    - test1/
      - Home
        - Index.cshtml
    - test2/
      - Home
        - List.cshtml
  - Home/
    - Index.cshtml

Обычно, если пользователь запрашивает Index с template=test1, я хочу использовать Views/Templates/test1/Index.cshtml. Если у них есть template=test2, я хочу использовать Views/Home/Index.cshtml (потому что /Views/Templates/test2/Home/Index.cshtml не существует). И если они не передают шаблон, то он должен перейти непосредственно к Views/Home.

Я новичок в MVC и .NET в целом, поэтому не знаю, с чего начать. Я использую MVC3 и Razor для движка просмотра.

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Вы можете сделать это, создав собственный RazorViewEngine и установив свойство ViewLocationFormats. Здесь есть пример , который делает это путем переопределения WebFormViewEngine, но использование RazorViewEngine должно работать так же хорошо:

1 голос
/ 23 июня 2011

Вы можете изменить Демо-версию мобильного устройства Скотта Хансельмана в соответствии с вашими потребностями.Вместо того, чтобы проверять пользовательский агент или мобильное устройство, вы можете вставить свою логику для проверки строки запроса или ваших сеансовых переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...