如何在共享项目中使 .net 8.0 razor 组件具有交互性?

问题描述 投票:0回答:1

我有一个包含多个 blazor Web 应用程序项目的 Visual Studio 解决方案。 每个应用程序都需要使用多个相同的组件。 我想将 Web 程序集组件放置在共享项目中,将它们添加为项目引用并将它们包含在 _imports.razor 文件中,并将它们包含在各种 Web 应用程序的页面上。

我已将“计数器”组件放置在共享项目中并将其添加到页面中:

<Counter @rendermode="InteractiveAuto"/>

但是运行该项目给了我以下错误:

InvalidOperationException:“myawesomenamespace.Counter”类型的组件具有渲染模式“InteractiveAutoRenderMode”,但所需的端点未映射到服务器上。调用“MapRazorComponents”时,添加对“AddInteractiveServerRenderMode”的调用。例如,'builder.MapRazorComponents<...>.AddInteractiveServerRenderMode()'

这一行:

app.MapRazorComponents<web.components.App>().AddInteractiveWebAssemblyRenderMode().AddAdditionalAssemblies(typeof(wasm._imports).Assembly);

存在于服务器Program.cs文件中。

如果我排除“@rendermode =“InteractiveAuto”'指令,组件会呈现,但按钮不起作用。

共享项目中的交互式组件是否可能?

c# razor blazor .net-8.0
1个回答
0
投票

就我而言, 将此行添加到 app.razor 的 body 标签下:

<Routes @rendermode="InteractiveServer" />

将应用于您项目中的所有组件。

© www.soinside.com 2019 - 2024. All rights reserved.