Вложенные главные страницы в ASP.NET MVC 2 - PullRequest
0 голосов
/ 23 июля 2010

Я знаю, как сделать вложенные главные страницы в веб-формах, но возможно ли это и в MVC2?Я знаю, как сделать это только с разметкой.

Я хотел бы установить его из кода в зависимости от критериев.Возможно ли с помощью некоторого кода в контроллере определить вложенную главную страницу и главную страницу?

Ответы [ 3 ]

1 голос
/ 23 июля 2010

" Возможно ли с помощью некоторого кода в контроллере определить вложенную главную страницу и главную страницу? "

Нет. Механизм представления по умолчанию позволяет вам определять только один уровень мастер-страниц.

См .: http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.view.aspx

0 голосов
/ 29 июля 2014

Дочерняя страница будет выглядеть как обычная дочерняя главная страница.

Страница просмотра будет наследовать дочернюю страницу.

place 'Inherits = "System.Web.Mvc.ViewMasterPage"'в верхней строке и укажите MasterPageFile на родительскую главную страницу.

Заполнители содержимого будут объединены в цепочки: то есть верхняя главная страница будет иметь разделы ContentPlaceHolder с идентификатором, а подчиненная главная страница будет иметьРаздел содержимого с ContentPlaceHolderID, установленным на идентификатор вышестоящего ContentPlaceHolder на родительской странице.

Ключ заключается в том, что механизм представления будет заменять самый внутренний текст на заполнитель следующего уровня до тех пор, пока все заполнители не будут заполнены HTML-содержимым.

Я готовлю пример приложения MVC Music Store с помощью этого метода, и он отлично работает для меня.

Это позволяет программисту следовать правилу «Не повторять себя» и не повторять код от одного мастерастраница к другому.Вы можете определить главную страницу верхнего уровня с навигацией по сайту и базовым форматированием, общим для всех страниц, а затем использовать дочернюю главную страницу, когда существуют различия в отображении страниц, которые являются уникальными для определенного набора представлений, представленных конкретным контроллером.

Я знаю, что это старый пост, но концепцию стоит комментировать даже сегодня.

Я использую MVC2, потому что это то, что в настоящее время разрешено на моем компьютере на работе.

0 голосов
/ 25 июля 2010

Ну, нет способа сделать это в контроллере, афаик.Однако что мешает вам передать переменную ViewState и запросить ее в вашем представлении, чтобы определить, какой должна быть ваша главная страница?

Что-то, что может вам помочь: шаблонное частичное представление

...