首页 > 解决方案 > 如何在 asp.net core 3.1 mvc 中使用带有子布局页面的 @section 脚本?

问题描述

我有一个主布局,然后是某些视图的子布局。

在主布局中,我有:

@RenderSection("Scripts", required: false)

子布局引用主布局本身。

但是我一直在有@section Scripts的视图上遇到异常

例外是:

InvalidOperationException:以下部分已定义但尚未由页面在x处呈现

x是子布局页面。

当然,主布局仍应呈现脚本?

我错过了一步吗?

标签: asp.net-mvcasp.net-corelayout-page

解决方案


可以参考 Layout 的官方文档A layout can optionally reference one or more sections, by calling RenderSection. Sections provide a way to organize where certain page elements should be placed.

如果你使用

@{
    Layout = "_Layout";
}

在您的子布局中,这意味着您可以 @section Scripts在您的子布局中使用。如果你使用

@{
        Layout = "_ChildLayout";
 }

在你的其他视图中,这意味着布局是_ChildLayout而不是_Layout在视图中。如果你想 @section Scripts在视图中使用,你需要添加 @RenderSection("Scripts", required: false)_ChildLayout,这是视图的布局。


推荐阅读