Asp.net mvc 以下部分已定义,但尚未为布局页面呈现,即使我已将其设置为必需:false

Asp.net mvc 以下部分已定义,但尚未为布局页面呈现,即使我已将其设置为必需:false,asp.net-mvc,Asp.net Mvc,这个问题被问了很多次,答案总是将其设置为@RenderSection(“MySection”,false) 然而,在我的情况下,这是行不通的 错误是: 以下部分已定义,但尚未呈现 对于布局页面“~/Views/Shared/KittenLayout.cshtml”:“样式” 我的网页是: 布局为“~/Views/Shared/KittenLayout.cshtml”的Kitten.cshtml KittenLayout.cshtml,它定义了两个部分,@section stuff和sectio

这个问题被问了很多次,答案总是将其设置为
@RenderSection(“MySection”,false)

然而,在我的情况下,这是行不通的

错误是:

以下部分已定义,但尚未呈现 对于布局页面“~/Views/Shared/KittenLayout.cshtml”:“样式”

我的网页是:

  • 布局为“~/Views/Shared/KittenLayout.cshtml”的Kitten.cshtml
  • KittenLayout.cshtml,它定义了两个部分,
    @section stuff
    section@otherstuff
    ,并且它有Layout=“~/Views/Shared/_KittenMasterLayout.cshtml”
  • _KittenMasterLayout.cshtml具有
    @RenderSection(“样式”,必填项:false)

为什么我会出现这个错误?

我已经解决了这个问题,显然没有继承,所以如果你有A->B->C页,其中A是主页面,B是母版页,C是母版页,那么如果你在C上定义一个节,并在A上呈现它,你会得到一个错误。你也必须把它加到B中,然后把它传递出去

将此添加到第B页修复了它:

@section styles
{
    @RenderSection("styles", required: false)
}