我在服务器端使用asp.net内核中的SignalR,在客户端使用blazorise。以前,我使用SignlaR基本上只是为了聊天,现在我想用它在记录插入到其他位置时更新表。我认为在服务器端一切正常,因为当我在服务器上跟踪它时,它会发布正确的值,但不会更新客户端的表。我不知道出了什么问题。这是我在服务器端的代码,它在一个集线器中:
public async Task SendCartableUpdate(ResultData<PersonnelStationsInfo> resultData)
{
await Clients.All.SendAsync("RefreshCartable",resultData);
}这是我在客户端使用它的方式:
protected override async Task OnInitializedAsync()
{
//await base.OnInitializedAsync();
user = CurrentUserService.CurrentUser;
await CartableTableChangePage(1);
hubConnection = new HubConnectionBuilder()
.WithUrl(navigationManager.ToAbsoluteUri("http://localhost:15424/ProductionServiceHub"))
.Build();
hubConnection.On<ResultData<PersonnelStationsInfo>>("RefreshCartable", (_resultData) =>
{
StateHasChanged();
});
await hubConnection.StartAsync();
}谢谢你的帮助
发布于 2021-08-17 03:24:45
最后我解决了这个问题,我非常兴奋:)下面是我如何在服务器端修改代码的:
public async Task SendCartableUpdate()
{
await Clients.All.SendAsync("RefreshCartable");
}下面是我在客户端修改代码的方式:
protected override async Task OnInitializedAsync()
{
//await base.OnInitializedAsync();
hubConnection = new HubConnectionBuilder()
.WithUrl(navigationManager.ToAbsoluteUri("http://192.168.2.72:1050/ProductionServiceHub"))
.Build();
hubConnection.On("RefreshCartable", () =>
{
CallLoadData();
StateHasChanged();
});
await hubConnection.StartAsync();
user = CurrentUserService.CurrentUser;
await CartableTableChangePage(1);
}
private void CallLoadData()
{
Task.Run(async () =>
{
await CartableTableChangePage(1);
StateHasChanged();
});
}https://stackoverflow.com/questions/68802787
复制相似问题