我目前正在使用ExtCore来构建模块化API,并且我也想使Blazor SPA应用程序模块化。
我希望有一个核心Blazor项目,该项目将从其他项目中导入.cshtml文件,以便SPA应用程序的每个部分都有一个项目,以模块化方式对该解决方案进行编码。
我不能使用ExtCore,因为它要求项目为.net核心,而Blazor是.net标准(试图将其更改为.net核心,然后将其炸毁)。
任何指导,不胜感激。
https://github.com/aspnet/Blazor
最佳答案
自问了我的问题以来,很多事情都发生了变化。 Blazor现在是.net核心的完全受支持的一部分,并且工具已得到了很大的改进。
现在,通过Razor类库,可以更轻松地创建模块化Blazor应用程序
Razor 类库允许您创建一个包含以下内容的项目
Microsoft Docs: Razor class library
使 Razor 类库模块化
在App.razor内部是Blazor的路由器。
路由器具有入站参数,该参数需要一组附加程序集来查看和查找任何附加路由。巧妙命名为附加组件
因此,您可以使用“AdditionalAssemblies”参数指向一种方法,该方法将扫描引用的Razor类库中的页面。
<Router AppAssembly="@typeof(Program).Assembly" AdditionalAssemblies="AssemblyScanning.GetAssemblies().ToArray()">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
</Found>
<NotFound>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
示例项目
我已经在github上放了一个示例项目作为示例。
Github : ModularBlazor
没有框架。只是默认的Blazor位,几个基本接口(interface)和一些程序集扫描。
关于c# - 如何创建模块化Blazor Web App,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49530032/