Применение общего макета к элементам управления ascx в ASP.NET MVC
Каков наилучший способ реализовать визуальное наследование для частичных представлений ascx в MVC?
У меня есть основной файл Site.Master, который содержит верхний и нижний колонтитулы, боковую панель и область основного содержимого. Затем у меня есть Info.Master, который использует Site.Master в качестве главной страницы и обеспечивает общий макет для почти идентичных страниц. Тогда все эти похожие "информационные" страницы на сайте имеют Info.Master в качестве главной страницы.
Теперь я хотел бы сделать то же самое для частичных представлений ascx, которые появляются на боковой панели, поскольку у меня есть несколько элементов управления, которые все "выглядят" одинаково, с верхними и нижними колонтитулами и т. Д.?
1 ответ
Вы можете использовать обычные представления ASPX в качестве партиалов и создать для них еще одну главную страницу с общими частичными элементами макета. Проверьте этот пост от Джеффри Палермо для получения дополнительной информации об этой технике.
Другой вариант - разместить общие элементы частичной разметки на одной из главных главных страниц и воспользоваться преимуществами мест просмотра. Например, если у вас есть частичная часть под названием "Боковая панель" с содержимым, которое изменяется только для каждого контроллера, вы можете создать общий частичный элемент в каталоге Views/Shared и более конкретные партиалы в каждом каталоге Views /<имя контроллера>, а также частичное будет переопределено.
<div id="sidebarheader">...</div>
<% Html.RenderPartial("Sidebar"); %>
<div id="sidebarfooter">...</div>