Razor минимально работает с мастер-страницами, используя следующую технику:
http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx
Это работает почти идеально (вызов RenderPartial из MasterPage в RazorView.) Единственный недостаток - у меня есть 3 блока контента (элементы управления) на моей главной странице. Концептуально это соответствует Razor Layout с 3 разделами с одинаковыми именами.
Единственная проблема в том, что я не могу понять, как вытащить каждый раздел макета бритвы по отдельности, чтобы сделать его разделами мастер-страницы.
Я попытался установить ViewBag.Layout в каждом разделе мастер-страницы и иметь 3 макета Razor, отрисовывающих 3 раздела, основанных на макете бритвы [нижний колонтитул, заголовок и тело]. Проблема в том, что Razor не позволяет мне визуализировать бритвенное представление, реализуя несколько разделов через макет, отображая только один раздел. (Это заставляет меня сделать все 3).
Моя другая попытка состояла в том, чтобы макет бритвы отображал разметку элемента управления главной страницы вместе с видами бритвы. Это выглядит элегантно, но я получаю сообщение об ошибке, что коллекция элементов управления главной страницы доступна только для чтения.
Есть ли способ, позволяющий мне разрабатывать виды Razor для макета Razor и иметь несколько разделов макета, сопоставляемых с мастер-страницами, эквивалентными несколько (один работает отлично), блоки содержимого / разделы?
Редактировать: Обновлена ссылка на статью по интеграции MasterPage / MVC.