如何在 .NET 8 中使用 Blazor Web 应用程序 (WebAssembly) 托管服务器端控制器?

Ste*_*sen 3 .net c# blazor blazor-webassembly .net-8.0

在 .NET 8 之前,使用 Blazor WebAssembly 应用托管服务器端控制器很容易。您只需单击项目模板中的“ASP.NET Core 托管”复选框,系统就会为您创建一个 ASP.NET Core 项目,该项目将托管 Blazor WebAssembly 客户端。

随着 .NET 8 的发布,引入了一个名为“Blazor Web App”的新模板。但它没有“ASP.NET Core Hosted”复选框

在此输入图像描述

那么我应该如何托管服务器端控制器呢?“Blazor Web App”是否引入了处理客户端到服务器通信的新系统?

微软文档说:

我们删除了 Blazor 服务器模板,并且 ASP.NET Core 托管选项已从 Blazor WebAssembly 模板中删除。使用 Blazor Web 应用模板时,这两种场景都由选项表示。

但我不确定这种情况如何“使用 Blazor Web 应用程序模板时由选项表示”

Hen*_*man 7

当您创建具有包含 Wasm 的交互性的“Blazor Web 应用程序”时,您已经获得了一个客户端和一个服务器项目。共享(DTO)项目丢失,但您可以轻松添加它,它只是一个类库。

将 AddControllers() 和 MapControllers() 添加到服务器的 Program.cs 中,然后您可以开始添加所需的控制器。

   ...

builder.Services.AddControllers();
var app = builder.Build();

   ...

app.MapControllers();
app.Run();
Run Code Online (Sandbox Code Playgroud)