gpt4 book ai didi

c# - MVC5 的嵌套布局

转载 作者:可可西里 更新时间:2023-11-01 03:13:46 25 4
gpt4 key购买 nike

我看过一些关于这个主题的帖子:

Razor Nested Layouts with Cascading Sections

MVC 3 - Nested layouts - sections don't render in Areas

而且它似乎总是有问题。然而,他们都已经很老了,所以想知道情况是否发生了变化。

基本上我有一个主布局和 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 从未呈现过它。我该如何解决这个问题?

布局页面“~/Views/Shared/_LayoutForEdit.cshtml”:“breadcrumbs”已定义但尚未呈现以下部分。

最佳答案

我知道这是一个老问题。我想无论如何我都会分享这个,以防其他人遇到这个问题(就像我一样)。

在您的 布局的底部,您定义了一个与父布局中的部分同名的部分。在此部分中,您只需放置一个 @RenderSection,再次指定与之前相同的名称。一旦到位,您基本上可以让子布局从页面“绕过”内容,直到其父布局:

@section breadcrumbs {
@RenderSection("breadcrumbs", true)
}

关于c# - MVC5 的嵌套布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21026917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com