【发布时间】:2020-06-28 22:01:41
【问题描述】:
我正在开发一个 ASP.NET Core 3.1 Blazor 服务器端应用程序,该应用程序具有一个带有 EditForm 的 Blazor 组件。我想警告用户,如果他们尝试离开页面(即单击浏览器后退按钮或进行导航菜单选择以在同一应用程序中加载另一个页面),他们有未保存的数据。
我有 read posts 关于使用 javascript window.onbeforeunload 但我不确定在 Blazor 服务器端调用 javascript 是否会弄乱 SignalR 连接。
我也有 read posts 关于使用 CircuitHandler,但我不确定如果用户只是移动到同一应用程序中的不同页面,SignalR 电路是否会发生变化。
关于如何最好地处理此要求的任何建议?
【问题讨论】:
-
简单的方法是通过 JS Inetrop 设置和取消设置
window.onbeforeunload。我前段时间写了一个lib,此时已弃用但你可以看到想法:github.com/ctrl-alt-d/BlazorConfirm
标签: javascript asp.net-core signalr blazor blazor-server-side