Razor 的可路由组件 Class 库未显示在 ASP.NET Core 6.0 WebAssembly 中

Routable componet of Razor Class Library not displayed in ASP.NET Core 6.0 WebAssembly

我有一个 ASP.NET Core 6.0 WebAssembly,其中包含一个 Razor class 库。该库包含多个组件,其中三个组件使用 @page 指令。登录后(使用 IdentityServer4 实现),它被定向到库中的一个可路由组件。问题:组件没有显示...

我检查了以下内容:

我发现了以下内容:

我试过这个:

Razor class 库中的组件以前直接在 Blazor WebAssembly 中实现,这就是它的工作原理!我的目标是稍后将库与延迟加载集成。

您应该能够像这样测试您的图书馆页面:

  1. 使用 @page "/"
  2. 设置您的图书馆页面之一
  3. 设置 App AppAssembly 指向 class 库。下面是一个例子。
<Router AppAssembly="@typeof(Blazor.App.UI.App).Assembly">
...

发生了什么。图书馆路线是否加载为默认路线?

基于响应的附加信息

我的一个测试解决方案中有这个,它有效。注意我使用完全限定的名称空间名称。 Blazor.App.UI.IndexBlazor.App.UI assembly/namespace 中的索引页。我也喜欢保持我的 Razor 非常干净,这就是为什么在 @code 块中定义列表的原因。

@namespace Blazor.App.UI
@using System.Reflection

<Router AppAssembly="@typeof(Blazor.App.Core.ListOptions).Assembly" AdditionalAssemblies="@Assemblies">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
        <FocusOnNavigate RouteData="@routeData" Selector="h1" />
    </Found>
    <NotFound>
        <PageTitle>Not found</PageTitle>
        <LayoutView Layout="@typeof(MainLayout)">
            <p role="alert">Sorry, there's nothing at this address.</p>
        </LayoutView>
    </NotFound>
</Router>

@code {
    private List<Assembly> Assemblies => new List<Assembly>() { typeof(Blazor.App.UI.Index).Assembly  };
}

在你的行中:

AdditionalAssemblies="new[] { typeof(Helper).Assembly, typeof(Confirmation).Assembly, typeof(HelperRegistration).Assembly }"

HelperConfigurationHelperRegistration 是否在同一个程序集中?如果是这样,那么您应该只引用一次程序集。

我发现了错误。这不是组件的显示,而是我集成导航菜单的方式。没有像我预想的那样显示,但是当时没有显示任何组件是正确的。

提示帮助我找到了错误的原因。谢谢!