我有一个 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 关注
- 157 浏览
添加回答
举报
0/150
提交
取消