我在运行 Blazor 服务器应用时看不到任何 POST 请求



我正在运行一个已部署到IIS的blazor服务器应用程序。该网站的后端有一个REST web服务。代码是这样的:

<EditForm Model="@boundObject" OnValidSubmit="HandleValidSubmit">
<td>
<input type="checkbox" @bind="boundbject.HasCar" />
</td>
<button type="submit">Submit</button>
</EditForm>
@code {
private void HandleValidSubmit(object handler)
{
if(boundObject.HasCar)
{
webService.WriteHasCar(boundObject.objectID,true)   
}   
}
}

它工作得很好,但当我提交这个请求时,看看Fiddler中的网络流量,我可以看到PATCH请求转到web服务,而对web服务的调用是这样做的,但我点击提交按钮时没有看到POST请求。我在这里错过了什么?Fiddler跟踪是看不到它,还是我的代码不会生成POST请求?如果没有,复选框的值是如何到达服务器的?

您看不到Post请求,因为没有发布请求。您的表格未提交。虽然您使用了提交按钮,但不会出现传统的发布请求。提交操作被Blazor拦截并取消,因为这是一个具有明确定义的空间边界的SPA应用程序。你通常不会导航出这些边界,如果你导航到外部登录页面,你的SPA就不再存在了。当你被重定向回来时,它会复活。。。

服务器Blazor应用程序不使用HTTP协议,而是使用SignalR。服务器Blazor应用程序的客户端(浏览器(和服务器端之间的所有通信都通过SignalR执行。

请注意,对应用程序的初始请求是HTTP获取请求。这是唯一一次使用HTTP,而不是SignaR