Как указать LayoutPage по умолчанию в Razor в ASP.NET MVC 3 Preview 1?

Я хочу указать (в одном месте) страницу макета по умолчанию в Razor, чтобы я мог удалить это:

@{ LayoutPage = "~/Views/Shared/_Layout.cshtml"; }

из каждого файла .cshtml, который у меня есть. Но я не знаю как ... Есть идеи? Я использую движок Razor из ASP.NET MVC 3 Preview 1.

25
задан bzlm 6 March 2011 в 12:54
поделиться

2 ответа

В MVC 3 Preview 1 нет простого способа сделать это. Это ограничение битов предварительного просмотра, которое будет исправлено в следующих выпусках. К сожалению, файлы _init.cshtml не работают в этой предварительной версии MVC3, поэтому вы не можете следовать шаблону веб-страниц.

Я могу придумать два способа заставить его работать (хотя ни один из них не является оптимальным)

  1. написать свой собственный базовый класс страницы, производный от WebViewPage, и установить правильный макет в конструкторе... но в этом случае вы пришлось бы указывать директиву @inherits в каждом представлении.
  2. установите переопределение макета в методе действия (используя переопределение View(string viewName, string masterName)). Вы можете написать базовый класс промежуточного контроллера, который будет иметь вспомогательный метод, чтобы избавить себя от повторения макета повсюду.
0
ответ дан 28 November 2019 в 18:08
поделиться

Похоже, это можно сделать с помощью файла _init.cshtml в корне каталога представления, в котором вы хотели бы разместить общий элемент страницы (заголовок). Когда механизм просмотра Razor создает вашу страницу, он ищет несколько определенных файлов, которые автоматически называются _start.cshtml, _init.cshtml и _end.cshtml; эти файлы загружаются в соответствующем порядке механизмом представления для каждого запроса. Размещение определения LayoutPage и/или других распространенных операций инициализации в этих файлах гарантирует их выполнение для всех страниц.

Примечание: я не уверен, передается ли эффект в подкаталоги, поскольку это неясно из документации; вам придется попробовать и узнать.

Более подробную информацию о том, как это сделать, можно найти в руководстве Microsoft по созданию страниц с помощью Razor. Я нашел раздел Выполнение кода до и после файлов в папке на странице 169. Полную книгу и дополнительные образцы Razor можно найти на этой странице загрузки Microsoft.

2
ответ дан 28 November 2019 в 18:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: