【问题标题】:asp.net core mvc blazor autorefresh listingasp.net core mvc blazor 自动刷新列表
【发布时间】:2020-08-09 23:50:42
【问题描述】:

我已经创建了一个 asp.net core mvc / 服务器端 Blazor Web 应用程序。

我有一个带有实体框架核心的 sql-server 数据库。

我想在页面中显示表格内容。我遵循 WeatherForecastService 示例。一切正常。

如果另一个用户正在插入、更新或删除数据库中的项目,我想要做的是自动刷新列表。

我认为使用 signalR 可以做到这一点,但有没有一种简单的方法可以使用 Blazor 自动做到这一点?

谢谢

【问题讨论】:

  • 您不能只轮询服务并将数据模型分配给服务的结果吗?您可能需要调用 StateHasChanged() 来实际更新数据模型。这可能不是一个非常干净的方式,但我能想到的最简单的方式。

标签: blazor blazor-server-side


【解决方案1】:

我不知道有一种自动方法可以做到这一点。处理数据应始终由您控制。

我所看到的完成方式是一个 SignalR 集线器,它在 CUD 操作发生时将更新推送到所有连接的客户端。然后,视图中的代码确定要做什么(例如,用户正在编辑其他人编辑或删除的项目)。否则,只需将操作应用于视图模型数据。

【讨论】:

  • 谢谢你能告诉我signalr如何用blazor“推送”更新吗?
  • 从一般 SignalR 教程开始,了解如何实现集线器。然后使用 c# 包装器编写您自己的视图和事件处理实现代码。
  • @Bob5421 您可以查看我的示例应用程序github.com/conficient/BlazorChatSample,了解在 Blazor 环境中使用 SignalR 的示例。如果您将 ChatClient 替换为向侦听客户发送有关更新记录的消息,您将获得解决方案。
猜你喜欢
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 2023-03-25
  • 2021-08-25
  • 1970-01-01
相关资源
最近更新 更多