Blazor получает сообщение об ошибке, щелкнув меню «Вход» в проекте сервера веб-сборки - PullRequest
0 голосов
/ 19 апреля 2020

Я создал Blazor WebAssembly с аутентификацией, определил базу данных в json файле настроек и Update-database с помощью консоли nuget. Я запустил приложение, оно работает нормально, после того, как в целях настройки я добавил функции скаффолдинга удостоверений, щелкнув Add => новый элемент скаффолдинга в моем проекте сервера, затем я выбрал для него весь элемент / макет настройки и предоставил модальное значение для него. После запуска приложения оно все еще работает на домашней странице, но когда я щелкнул меню «Вход / Регистрация», оно получило следующую ошибку

Произошло необработанное исключение при обработке запроса. InvalidOperationException: Следующие разделы были определены, но не были отображены страницей в '/Pages/Shared/_Layout.cshtml': 'Скрипты'. Чтобы игнорировать необработанный раздел, вызовите IgnoreSection ("sectionName"). Microsoft.AspNetCore. Mvc .Razor.RazorPage.EnsureRenderedBodyOrSections ()

System.InvalidOperationException: Следующие разделы были определены, но не были отображены страницей в /Pages/Shared/_Layout.cshtml ':' Скрипты '. Чтобы игнорировать необработанный раздел, вызовите IgnoreSection ("sectionName"). в Microsoft.AspNetCore. Mvc .Razor.RazorPage.EnsureRenderedBodyOrSections () в Microsoft.AspNetCore. Mvc .Razor.RazorView.RenderLayoutAsyn c (контекст представления контекста, ViewBufferTextWriter bodyWazer. bodyRriter). .RazorView.RenderAsyn c (контекст ViewContext) в Microsoft.AspNetCore. Mvc .ViewFeatures.ViewExecutor.ExecuteAsyn c (ViewContext viewContext, String contentType, Nullable 1 statusCode) at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable 1 statusCode) в Microsoft.AspNetCore. * 1018 | в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.ResultNext [TFilter, TFilterAsync] (State & next, Scope & scope, Object & state, Boolean & isCompleted) в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvult.Ru. - Конец этапа k трассировка из предыдущего местоположения, где было сгенерировано исключение --- в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.g__Awaited | 24_0 (ResourceInvoker invoker, Task lastTask, State next, область действия Scope, состояние объекта, логическое значение isCompleted) в Microsoft. AspNetCore. Mvc .Infrastructure.ResourceInvoker.Rethrow (контекст ResourceExecutedContextSealed) в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.Next (состояние и следующее, область действия и область действия, объект и состояние, логическое значение * isCompleNetC). .Infrastructure.ResourceInvoker.InvokeFilterPipelineAsyn c () --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.g__Awaited | 17_0 (Средство вызова ResourceInvoker, задача задачи) , IDisposable scope) в Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask | 6_0 (конечная точка конечной точки, Task RequestTask, регистратор ILogger) в Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke (HttpContext contex) t) в Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke (контекст HttpContext) в IdentityServer4.Hosting.IdentityServerMiddleware.Invoke (контекст HttpContext, события IEndpointRouter, сеанс IUserSession, IAventServiceTeverTechTeverTeverTechTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeverTeTMTTMeTMTHTM)). схемы) в Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke (контекст HttpContext) по адресу IdentityServer4.Hosting.BaseUrlMiddleware.Invoke (контекст HttpContext) по адресу Microsoft.AspNetCore.Builder.Extensions.MapWhenMidxter.Context.Conware.Net .Extensions.MapMiddleware.Invoke (контекст HttpContext) в Microsoft.AspNetCore.Diagnostics. EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke (HttpContext контекст) на Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke (HttpContext HttpContext) в Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke (HttpContext HttpContext) в Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware. Invoke (контекст HttpContext)

Ответы [ 2 ]

2 голосов
/ 19 апреля 2020

Чем означает, что на вашей _Layout.cshtml странице есть утверждение

@RenderSection("Scripts")

А на странице нет

@section Scripts {
...
}

, используя _Layout.cshtml в качестве макета стр. Чтобы предотвратить такие ошибки, вы можете изменить

@RenderSection("Scripts")

на

@RenderSection("Scripts", false)

, что сделает раздел Scripts необязательным для страниц, использующих этот макет.

0 голосов
/ 20 апреля 2020

Мне удалось воспроизвести ошибку. Это не ошибка Blazor. Тем не менее, вы можете решить эту проблему с помощью следующего:

 <div class="content px-4">
        @RenderBody()
        @{
            @if (IsSectionDefined("Scripts"))
            {
                IgnoreSection("Scripts");
            }


        }
    </div>
...