以下部分已定义但尚未为具有一行条件的布局页面呈现

The following sections have been defined but have not been rendered for the layout page with one line conditional

我收到以下错误,但我已在下面的布局页面上定义了它。我将 @(IsSectionDefined 更改为 @if(IsSectionDefined,因为我需要在 else 语句中写入 null。为什么这会成为一个问题?

The following sections have been defined but have not been rendered for the layout page "~/Areas/Directors/Views/Shared/_MembersFormLayout.cshtml": "FormCallback".

Layout.cshtml

 <form data-bind="form:{ id: @Model.FormId, callback: @if (IsSectionDefined("FormCallback")){RenderSection("FormCallback", false);}else {@(Html.Raw("null"))}}">

Page.cshtml

@section FormCallback{members.event.updateImage}

我可以使用他在 中找到的辅助函数来修复它。有没有办法使 @section 与 asp.net mvc Razor ViewEngine 可选? .

<form class="clearfix" action="@Request.RawUrl" data-bind="form:{ id: @Model.FormId, callback: @this.RenderSection("FormCallback", @<text>null</text>)}">

public HelperResult RenderSection(string name, Func<dynamic, HelperResult> defaultContents)
{
    if (IsSectionDefined(name))
    {
        return RenderSection(name);
    }
    return defaultContents(null);
}