我正在开发 Blazor 服务器端应用程序。任何熟悉 Blazor 的人都在左侧的 NavBar 中填充了超链接,只是用特殊的 css 类装饰。我的问题是,如果已编辑任何内容,我正在尝试停止导航并在特定页面上显示弹出窗口。
我尝试使用 LocationChanged 中的处理程序来捕获它,但是直到 url 已经更改后,它才会触发该方法。我试过在 if 语句中使用 dbContext.ChangeTracker.HasChanges() 然后有一个模态弹出窗口,询问您是否要保存更改或导航离开,但我找不到在之前关闭它的方法网址变了。我尝试了一个名为 BlazorBeforeUnload 的 nuget 包来添加一个事件处理程序,在重定向或路由发生之前捕获它,但它是为 .net 标准 2.0 而不是 .net core 3.0 编写的。我可以体面地编写 C#,但我还不够好,无法弄清楚如何将它从一种转换为另一种,或者不知道在这种情况下是否可能。
我希望有一些方法可以在页面重新路由或刷新之前触发事件,但除了给我构建错误的 .net 标准 2.0 包之外,我似乎无法在 Visual Studio 或在线其他地方找到任何东西。