Перейти к содержанию

Переопределение родительских макетов с помощью секций

При использовании макетов часто возникает необходимость визуализировать содержимое дочерних представлений в нескольких местах макета. Для этого нужен механизм, указывающий, где какое именно содержимое визуализировать.
Для этого нужны секции.
Секции обеспечивают способ организации размещения элементов представления в макете. Определяются в представлении с помощью директивы @section:

@{
    Layout = "_TwoColumn";
}
@section Sidebar {
    <p>This is the sidebar content</p>
}
<p>This is the main content</p>

Секция визуализируется в родительском макете с помощью вызова функции @RenderSection(). Они могут быть обязательными или не обязательными: если секция обязательна, представление должно ее объявить. Вот пример макета с обязательной секцией Sidebar и необязательной секцией Scripts.
@{
    Layout = "_Layout";
}
<div class="main-content">
    @RenderBody()
</div>
<div class="side-bar">
    @RenderSection("Sidebar", required: true)
</div>
@RenderSection("Scripts", required: false)

Необязательная секция Scripts позволяет добавлять код JavaScript на тех страницах, где это необходимо.
Определение свойства Layout у макета позволяет выстраивать иерархию макетов.


Последнее обновление : 25 сентября 2022 г.
Дата создания : 25 сентября 2022 г.

Комментарии

Комментарии