Я видел несколько сообщений по этой теме:
Вложенные макеты Razor с каскадными разделами
MVC 3 - Вложенные макеты - разделы не отображаются в областях
И это всегда кажется проблематичным. Однако они оба довольно старые, поэтому задаются вопросом, изменились ли вещи.
В основном у меня есть макет макета и 3 разных шаблона тела, основанных на том, какая именно страница. Для примера:
_Layout.cshtml
<html lang="en">
<head>
</head>
<body style="padding: 50px 0;">
<header class="navbar navbar-default navbar-fixed-top" role="banner">
@Html.Partial("_MenuPartial")
</header>
<ol class="breadcrumbs">
@RenderSection("breadcrumbs", true);
</ol>
<section>
@RenderBody();
</section>
<footer class="navbar navbar-default navbar-fixed-bottom">
@Html.Partial("_FooterPartial")
</footer>
@Html.Partial("_ScriptInitPartial")
</body>
</html>
_LayoutForEdit.cshtml
<div class="panel panel-primary">
<div class="panel-body">
<div class="col-lg-2">
<ul class="nav nav-pills nav-stacked">
@RenderSection("tabs", true)
</ul>
</div>
<div class="col-lg-10">
<div class="tab-content">
@RenderBody()
</div>
</div>
</div>
<div class="panel-footer">
<button class="btn btn-primary" data-bind="enable: Entity.isValid, click: save">Save</button>
</div>
</div>
Теперь это делает штраф при вызове. Почти.
Отрисовка разделов должна быть в дочернем макете. Если я попытаюсь поместить панировочные сундуки в _Layout.cshtml
, он будет терпеть неудачу, потому что _LayoutForEdit.cshtml
никогда не отображал его. Как я могу это исправить?
The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_LayoutForEdit.cshtml": "breadcrumbs".