Как правильно выполнить предварительную визуализацию Blazor WebAssembly? - PullRequest
0 голосов
/ 13 июля 2020

Это почти работает после следующих шагов:

  1. Установите размещенную версию blazorwasm шаблона приложения.
    dotnet new blazorwasm --hosted -o HostedWasm
    
  2. Скопируйте _Hosted.cshtml из шаблона blazorserver в папку Pages.
  3. Замените endpoints.MapFallbackToFile("index.html") на endpoints.MapFallbackToPage("/_Host") на Startup.cs сервера
  4. Измените <script src="_framework/blazor.server.js"></script> на <script src="_framework/blazor.webassembly.js"></script> в _Host.cshtml

Теперь, если вы dotnet run сервер, вы сможете перемещаться по страницам шаблонов с предварительно обработанными HTML.

Но у меня есть два вопроса:

  1. Это «правильный» способ выполнить предварительную визуализацию Blazor WebAssembly? Я ничего не вижу об этом в документации.
  2. Как разделить DI между сервером и клиентом? Теперь, если вы перейдете к /, а затем перейдете к /fetchdata, все будет хорошо, но если вы затем используете F5 (например, refre sh) на пути /fetchdata, вы увидите

InvalidOperationException: невозможно предоставить значение для свойства «Http» для типа «HostedWasm.Client.Pages.FetchData». Не существует зарегистрированной службы типа 'System. Net .Http.HttpClient'.

Чтобы исправить , вам нужно скопировать HttpClient код конфигурации из Client / Program.cs до Server / Startup.cs

...