![](/img/trans.png)
[英]Visual Studio Community 2019 16.5.3 with Blazor App -> Add -> New Item -> Razor Component -> Route or component is not rendered
[英]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.razor
、 Login.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.