为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Blazor 不会路由到 razor 库中的组件?

为什么 Blazor 不会路由到 razor 库中的组件?

PHP
元芳怎么了 2024-01-20 21:05:32
我有一个 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 }> ...


查看完整回答
反对 回复 2024-01-20
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

不确定这种情况何时或为何开始发生。但就我而言,每次添加或重命名 razor 组件时,它都会<remove>在 csproj 文件中向该组件添加一个项目。只需将其删除即可。

使用 asp.net core 3.1 和 blazor 3.2 预览版 2


查看完整回答
反对 回复 2024-01-20
?
九州编程

TA贡献1785条经验 获得超4个赞

更改 Core 3.1 中 App.Razor 文件中的 Router 标签,外部路由包含在内。

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

但有趣的是,一旦您包含 Razor 库中的 1 个组件,您就会发现其他组件中的所有其他路由(至少在同一 Areas/Pages 文件夹中)也将起作用。


查看完整回答
反对 回复 2024-01-20
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

如果有人遇到同样的问题:

我不小心从 MainLayout.razor 文件中删除了@Body,因此路由时没有可见的更改。


查看完整回答
反对 回复 2024-01-20
  • 4 回答
  • 0 关注
  • 39 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信