Как отключить предварительный рендеринг на стороне сервера Blazor? - PullRequest
3 голосов
/ 19 апреля 2019

Чтобы отключить предварительный рендеринг на стороне сервера при предварительном просмотре 3 ядра asp.net, вам просто нужно прокомментировать @(await Html.RenderComponentAsync<MyApp>()).

Начиная с предварительного просмотра 4 ядра asp.net, когда вы комментируете эту строку, страница не отображается.Не выполняйте рендеринг, и на главном компоненте @page "/" тег <app> остается пустым.

Итак, как отключить предварительный рендеринг на стороне сервера?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2019

Наконец-то нашел решение по cores-system в github. Источник: https://github.com/aspnet/AspNetCore/issues/9584#issuecomment-485257261

app.UseEndpoints(endpoints =>
{
   endpoints.MapBlazorHub().AddComponent<App>(selector: "app");
   endpoints.MapFallbackToFile("index.html"); // or - endpoints.MapFallbackToPage("/_Host");
});

Надеюсь, это сработает ...

0 голосов
/ 19 апреля 2019

Возможно, вам следует удалить <Reference Include="Microsoft.AspNetCore.Mvc.Components.Prerendering" /> из файл .csproj.

Надеюсь, это поможет ...

Это: @(await Html.RenderComponentAsync<MyApp>()) Фрагмент кода - это способ «добавить интерактивные компоненты с отслеживанием состояния на страницу Razor или в представление . При визуализации страницы или представления компонент будет предварительно отображен вместе с ним».

Это определенно не та конфигурация, которая обеспечивает предварительный рендеринг на стороне сервера, как вы предлагаете.

Предварительный рендеринг на стороне сервера настраивается в методе AddServerSideBlazor; более конкретно, при вызове этого метода:

// We explicitly take over the prerendering and components services here.
            // We can't have two separate component implementations coexisting at the
            // same time, so when you register components (Circuits) it takes over
            // all the abstractions.
            services.AddScoped<IComponentPrerenderer, CircuitPrerenderer>(); 

Источник: https://github.com/aspnet/AspNetCore/blob/b9e600a45c5a56f869f12dda6242ef069bd2f9dc/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs

Полагаю, сейчас отключить предварительный рендеринг на стороне сервера невозможно. Это навязано нам. Но вы должны сделать свое исследование и узнать правду. Возможно, все, что я написал, это чепуха ...

...