我有一個 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.razor, Login.razor, 和_Imports.razor. 我有什么遺漏的嗎?
4 回答

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
需要這個關鍵部分:
使用AdditionalAssemblies 參數指定Router 組件在搜索可路由組件時要考慮的其他程序集。除了 AppAssembly 指定的程序集之外,還考慮指定的程序集。在以下示例中,Component1 是在引用的類庫中定義的可路由組件。以下AdditionalAssemblies示例導致對Component1的路由支持:
<Router?AppAssembly="typeof(Program).Assembly" AdditionalAssemblies="new[]?{?typeof(Component1).Assembly?}>?...

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
不確定這種情況何時或為何開始發生。但就我而言,每次添加或重命名 razor 組件時,它都會<remove>
在 csproj 文件中向該組件添加一個項目。只需將其刪除即可。
使用 asp.net core 3.1 和 blazor 3.2 預覽版 2

九州編程
TA貢獻1785條經驗 獲得超4個贊
更改 Core 3.1 中 App.Razor 文件中的 Router 標簽,外部路由包含在內。
<Router AppAssembly="typeof(Program). Assembly"AdditionalAssemblies="new[] { typeof(Component1).Assembly }> ...
但有趣的是,一旦您包含 Razor 庫中的 1 個組件,您就會發現其他組件中的所有其他路由(至少在同一 Areas/Pages 文件夾中)也將起作用。
- 4 回答
- 0 關注
- 270 瀏覽
添加回答
舉報
0/150
提交
取消