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



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

我检查了以下内容:

  • WebAssembly引用库
  • App.razor中,我添加了AdditionalAssemblies="new[] { typeof(Helper).Assembly, typeof(Confirmation).Assembly, typeof(HelperRegistration).Assembly }"

我发现了以下内容:

  • Visual Studio输出或浏览器DevTools控制台中都不会显示任何错误
  • 浏览器DevTools的"网络"选项卡中没有任何内容
  • 调用可路由组件的CCD_ 4

我试过这个:

  • OnInitializedAsync()方法调用布局组件的StateHasChanged()方法。背后的想法是触发库中组件的呈现

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

您应该能够像这样测试库页面:

  1. 使用@page "/"设置库页面
  2. AppAppAssembly设置为指向类库。下面是一个例子
<Router AppAssembly="@typeof(Blazor.App.UI.App).Assembly">
...

发生了什么。库路由是否加载为默认路由?

基于响应的附加信息

我在我的一个测试解决方案中有这个,它很有效。注意,我使用完全限定的命名空间名称。Blazor.App.UI.Index是位于Blazor.App.UI程序集/命名空间中的索引页。我也喜欢保持我的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是否在同一组件中?如果是,则应该只引用该程序集一次。

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

这些提示帮助我找到了错误的原因。非常感谢。

相关内容

  • 没有找到相关文章

最新更新