Asp.net mvc 作为Razor类库的独立Blazor应用程序

Asp.net mvc 作为Razor类库的独立Blazor应用程序,asp.net-mvc,blazor,blazor-webassembly,asp.net-blazor,razor-class-library,Asp.net Mvc,Blazor,Blazor Webassembly,Asp.net Blazor,Razor Class Library,从技术上讲,是否可以将一个完整的webassembly Blazor应用程序作为Razor类库,然后在另一个ASP.NET项目中使用它,而不管用户是MVC、Razor Pages还是Blazor应用程序?是否可以在Razor类库中定义路由 我正在做一个项目,该项目将作为Nuget软件包发布。这个包应该用在各种ASP.NET项目中,这些项目被实现为MVC、Razor Pages甚至Blazor。我知道了如何运行它。我正在使用.NET5.0 首先使用Razor类库项目创建一个新的解决方案(选中复选框

从技术上讲,是否可以将一个完整的webassembly Blazor应用程序作为Razor类库,然后在另一个ASP.NET项目中使用它,而不管用户是MVC、Razor Pages还是Blazor应用程序?是否可以在Razor类库中定义路由


我正在做一个项目,该项目将作为Nuget软件包发布。这个包应该用在各种ASP.NET项目中,这些项目被实现为MVC、Razor Pages甚至Blazor。

我知道了如何运行它。我正在使用.NET5.0

首先使用Razor类库项目创建一个新的解决方案(选中复选框
支持页面和视图

并创建一个MVC项目

Startups.cs
中添加以下内容:

public void配置服务(IServiceCollection服务)
{
...
services.AddRazorPages();
AddServerSideBlazor();
}
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
...
app.UseEndpoints(端点=>
{
endpoints.MapBlazorHub();
endpoints.MapRazorPages();
endpoints.MapControllerRoute(
名称:“默认”,
模式:“{controller=Home}/{action=Index}/{id?}”);
});
}
还要确保您有
app.UseStaticFiles()Configure
方法中选择code>

然后,在Razor类库中,可以复制和粘贴示例Blazor webassembly项目中的页面、共享文件夹和所有其他Razor文件。另外,不要忘记wwwroot css文件夹,并将您自己的wwwroot文件夹添加到您的RCL中

在Pages文件夹中,还创建一个新的
cshtml
文件。这将是Blazor应用程序的入口点

示例代码:

@page
@使用PROJECTNAME
@addTagHelper*,Microsoft.AspNetCore.Mvc.TagHelpers
Blazor WebAssembly预渲染
@*https://docs.microsoft.com/de-de/aspnet/core/blazor/components/css-isolation?view=aspnetcore-5.0#razor类库rcl支持*@

看看我在11月写的一篇文章,最近更新了一篇文章,描述了如何在一个核心站点上托管多个WASM和服务器SPA-