对于Razor页面,我们有Get和Put处理程序,它们的代码在服务器端执行,例如,当发布表单时,甚至使用简单的OnGet调用。在Blazor中,与之相当的是什么?例如,我可以将代码连接到onclick事件,但该代码在浏览器中执行(Blazor-wasm(,对吗?如何在服务器上执行代码?web API是Blazor下唯一的解决方案吗?
例如,我可以将代码连接到onclick事件,但该代码在浏览器中执行(Blazor-wasm(,对吗?
正确,代码将在Blazor的客户端wasm版本的浏览器中运行。您可以像在其他SPA框架中一样注入HttpClient
并进行http调用。默认模板中的weatherforecast示例正是这样做的。有关更多信息,请参阅文档。
如何在服务器上执行代码?
您需要在服务器端实现一个端点,该端点将接受并处理客户端发送的请求。例如,带有json的RESTapi就是这样工作的。
在asp.net核心中实现RESTapi的示例文档。该模板的托管版本还包括RESTapi示例。
web API是Blazor下唯一的解决方案吗?
不,gRPC也是一种很好的方法,或者SignalR。取决于用例。