Следующие разделы были определены, но не были представлены для страницы макета с одной строкой условного - PullRequest
0 голосов
/ 22 марта 2020

Я получаю сообщение об ошибке ниже, но оно определено на странице макета ниже. Я изменил @(IsSectionDefined на @if(IsSectionDefined, потому что мне нужно написать null в операторе else. Почему это может быть проблемой?

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

Layout.cs html

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

Page.cs html

@section FormCallback{members.event.updateImage}

1 Ответ

0 голосов
/ 22 марта 2020

Мне удалось исправить это с помощью его вспомогательной функции, найденной в Есть ли способ сделать @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);
}
...