У меня есть _Layout.cshtml верхнего уровня, который выглядит примерно так:
<html>
<head>
@RenderSection("Header", required: false)
</head>
<body>
@RenderSection("LeftPane", required: false)
@RenderSection("RightPane", required: false)
@RenderBody()
</body>
</html>
Тогда у меня есть два «под-макета». Один определяет только раздел LeftPane, другой определяет как LeftPane, так и RightPane. Эти вложенные макеты называются _LeftPane.cshtml и _LeftPlusRightPane.cshtml, и для них задано значение «_Layout.cshtml».
Затем в каждом файле View .cshtml я устанавливаю макет либо _LeftPane.cshtml, либо _LeftPlusRightPane.cshtml, в зависимости от того, что я хочу показать на странице.
Это все отлично работает. Проблема в новом разделе «Заголовок», который я добавил в часть документа <head>
. Этот раздел определен не в под-макетах, а в реальных представлениях. Когда я пытаюсь что-то посмотреть таким образом, я получаю сообщение об ошибке:
Следующие разделы были определены, но не были отображены для страницы макета "~ / Views / Shared / _LeftPlusRightPane.cshtml": "Header".
Я не хочу отображать раздел Заголовок в подуровнях, я хочу отобразить его в файле _Layout.cshtml. Как мне "пройти" через определенный раздел Заголовок из низкоуровневого представления, через под-макеты, до верхнего _Layout?