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

我有一个 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. 我有什么遗漏的吗?


元芳怎么了
浏览 47回答 4
4回答

慕桂英3389331

需要这个关键部分:使用AdditionalAssemblies 参数指定Router 组件在搜索可路由组件时要考虑的其他程序集。除了 AppAssembly 指定的程序集之外,还考虑指定的程序集。在以下示例中,Component1 是在引用的类库中定义的可路由组件。以下AdditionalAssemblies示例导致对Component1的路由支持:<Router AppAssembly="typeof(Program).Assembly" AdditionalAssemblies="new[] { typeof(Component1).Assembly }> ...

扬帆大鱼

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

九州编程

更改 Core 3.1 中 App.Razor 文件中的 Router 标签,外部路由包含在内。<Router&nbsp;AppAssembly="typeof(Program). Assembly"AdditionalAssemblies="new[]&nbsp;{&nbsp;typeof(Component1).Assembly&nbsp;}>&nbsp;...但有趣的是,一旦您包含 Razor 库中的 1 个组件,您就会发现其他组件中的所有其他路由(至少在同一 Areas/Pages 文件夹中)也将起作用。

翻翻过去那场雪

如果有人遇到同样的问题:我不小心从 MainLayout.razor 文件中删除了@Body,因此路由时没有可见的更改。
打开App,查看更多内容
随时随地看视频慕课网APP