【发布时间】:2020-11-19 06:40:10
【问题描述】:
在 Razor 页面中,我们有 Get 和 Put 处理程序,它们的代码在服务器端执行,例如在发布表单时,甚至通过简单的 OnGet 调用。 Blazor 中的等价物是什么?例如,我可以将代码连接到 onclick 事件,但该代码在浏览器中执行(Blazor wasm),对吗?我将如何在服务器上执行代码? Web API 是 Blazor 下唯一的解决方案吗?
【问题讨论】:
在 Razor 页面中,我们有 Get 和 Put 处理程序,它们的代码在服务器端执行,例如在发布表单时,甚至通过简单的 OnGet 调用。 Blazor 中的等价物是什么?例如,我可以将代码连接到 onclick 事件,但该代码在浏览器中执行(Blazor wasm),对吗?我将如何在服务器上执行代码? Web API 是 Blazor 下唯一的解决方案吗?
【问题讨论】:
例如,我可以将代码连接到 onclick 事件,但该代码在浏览器中执行 (Blazor wasm),对吗?
正确,代码将在 Blazor 客户端 wasm 版本的浏览器中运行。您可以像在其他 SPA 框架中一样注入 HttpClient 并进行 http 调用。默认模板中的天气预报示例正是这样做的。另请参阅docs 了解更多信息。
我将如何在服务器上执行代码?
您需要在服务器端实现一个端点来接受和处理客户端发送的请求。例如带有 json 的 REST apis 就是这样工作的。
Sample doc 用于在 asp.net 核心中实现 REST api。 模板的托管版本还包括 REST api 示例。
Web API 是 Blazor 下唯一的解决方案吗?
不,gRPC 也是一个很好的方法,或者 SignalR。取决于用例。
【讨论】: