Почему не следует использовать Blazor в компоненте библиотеки бритв? - PullRequest
2 голосов
/ 29 сентября 2019

У меня есть приложение Blazor и библиотека Razor.

В моей библиотеке Razor есть компонент AccountNavigation.razor, который я могу использовать с синтаксисом html, и он работает правильно, например так: <AccountNavigation />

Проблема в другом компоненте, Login.razor находится в той же библиотеке, а @page "/login" написано вверху.Нет ссылок на href="/login" или даже если я пробую маршрут вручную, он не работает.Если я переместу Login.razor в проект приложения Blazor, он будет работать.

Мой проект библиотеки Razor выглядит следующим образом:

<Project Sdk="Microsoft.NET.Sdk.Razor">

  <PropertyGroup Label="Globals">
    <SccProjectName>SAK</SccProjectName>
    <SccProvider>SAK</SccProvider>
    <SccAuxPath>SAK</SccAuxPath>
    <SccLocalPath>SAK</SccLocalPath>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <Version>1.0.3.5</Version>
    <LangVersion>8.0</LangVersion>
    <RazorLangVersion>3.0</RazorLangVersion>
  </PropertyGroup>


  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components" Version="3.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.RazorPages" Version="2.2.5" />
  </ItemGroup>

</Project>

Я также пытался настроить целевое ядро ​​3.0 ита же проблема.В моей библиотеке Razor всего 3 файла.Работающие AccountNavigation.razor, Login.razor и _Imports.razor.Я что-то упускаю?

1 Ответ

1 голос
/ 29 сентября 2019

Спасибо CoolBots за указание на документацию по Blazor Routing , мне потребовалась эта важная часть:

Используйте параметр AdditionalAssemblies, чтобы указать дополнительные сборки для компонента Router, чтобыучитывать при поиске маршрутизируемых компонентов.Указанные сборки рассматриваются в дополнение к указанной сборке AppAssembly.В следующем примере Component1 является маршрутизируемым компонентом, определенным в указанной библиотеке классов.Следующий пример AdditionalAssemblies приводит к поддержке маршрутизации для Component1:

<Router AppAssembly="typeof(Program).Assembly"
AdditionalAssemblies="new[] { typeof(Component1).Assembly }> ...
...