是否可以在 RCL 中创建 Blazor 页面?

Is it possible to create Blazor pages inside RCL?

This page 解释了如何创建一个 Razor class 库来放置共享组件。我尝试创建一个示例 Blazor 服务器端项目,其中 index.razor 具有在 Razor class 库中定义的组件。有效。

我想做的是开发一个 Blazor 服务器端应用程序,将来有可能将托管模型更改为 WASM。我想知道是否可以在共享 RCL 中创建页面和组件,这样的话,我可以在 Blazor 服务器端项目中创建控制器,并通过 Http 调用从 Razor class 库中使用它们。如果我将来想将托管模型更改为 WASM,这将对我有所帮助。

无论如何,我尝试在 RCL 中创建一个 Blazor 页面,但是当我尝试调用写在 @page 中的 URL 时,它无法访问。

I would like to ask you if it is possible to accomplish this behavior. If yes, what am I missing?

您可以复制我的示例,只需创建一个新的 Blazor 服务器端项目,使其引用 RCL,然后在 Component1.razor

中插入 @page "/testpage"

是的,您可以 - 您需要告诉 Blazor 路由器在哪里查找页面

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

文档:https://docs.microsoft.com/en-us/aspnet/core/blazor/routing?view=aspnetcore-3.1#route-to-components-from-multiple-assemblies