簡體   English   中英

為什么 Blazor 不會路由到 razor 庫中的組件?

[英]Why wont Blazor route to component in razor library?

我有一個 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>

我也嘗試過針對 net core 3.0 和同樣的問題。 我的 Razor 庫中只有 3 個文件。 工作AccountNavigation.razorLogin.razor_Imports.razor 有什么我想念的嗎?

感謝 CoolBots 將我指向Blazor Routing的文檔,我需要這個關鍵部分:

使用 AdditionalAssemblies 參數指定路由器組件在搜索可路由組件時要考慮的其他程序集。 除了 AppAssembly 指定的程序集之外,還考慮了指定的程序集。 在以下示例中,Component1 是在引用的 class 庫中定義的可路由組件。 以下 AdditionalAssemblies 示例導致對 Component1 的路由支持:

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

不確定何時或為什么開始發生這種情況。 但就我而言,每次我添加或重命名 razor 組件時,它都會在 csproj 文件中向該組件添加一個<remove>項。 只需將其刪除。

使用 asp.net 內核 3.1 和 blazor 3.2 預覽 2

@maksymiuk 在這方面是絕對正確的。 在 Core 3.1 中更改 App.Razor 文件中的 Router 標簽,並包含外部路由。

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

有趣的是,只要您從 Razor 庫中包含 1 個組件,您就會發現其他組件中的所有其他路由(至少在相同的區域/頁面文件夾中)也可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM