Применение общего макета к элементам управления 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>
Другие вопросы по тегам