了解 Blazor 托管

Understanding Blazor hosting

免责声明 我指的是 Blazor hosted ,而不是 server-side !

有人可以解释一下 运行 browser-hosted Blazor 时,为什么我需要在 Server.Startup 中放置扩展名 app.UseBlazor<Client.Startup> 吗? 如果 Blazor 客户端已经托管在 net core project -> Client.Startup 为什么我的 Server 项目需要添加这个扩展?

client不是应该和服务器解耦吗?

我在这里遗漏了什么?为什么我的 Server 项目需要了解 Client 因为我的 Client 项目已经是独立的了?

我添加了一张照片。 因此,正如您在我的图片中看到的那样,如果服务器通过 http 与客户端通信,为什么我需要添加扩展名? Blazor 已经 运行 在 asp-net-core 中,这是 Client 项目,我说得对吗?

"Why does my Server project need to know about the Client since my Client project is already standalone ?"

不,你的不是一个独立的项目。您的项目包含两个应用程序。只读你自己写的。请尝试删除您的服务器项目和 运行 Blazor 应用程序。您已经在浏览器中安装了一个前端应用程序 (Blazor) 运行。但是您需要一个应用程序来为 Blazor 应用程序提供服务:ASP.NET 服务器上 运行 的核心应用程序。

"Blazor is already running in a asp-net-core which is the Client project am i not right?"

据我所知,Blazor 运行在 mono webassembly 下。

我建议您阅读 UseBlazor 方法的内容以了解它的作用以及为什么需要它。据我记得是 Client.Program 而不是 Client.Startup.