【发布时间】:2020-11-21 03:13:35
【问题描述】:
问题:
Blazor 上是否有取消导航的方法?
让我们假设一个像这样的a href:
<a href="/some/other/blazor/spa/page">Go</a>
我想取消导航(例如,如果我们正在编辑表单)
我尝试过的。
通过JS
我通过 JSInterop 设置了onbeforeunload dom 委托:
window.onbeforeunload = function(){
return 'Vols abandonar aquesta pàgina?';
};
但 blazor 绕过它。
通过位置改变
我尝试拦截locationchanged事件的导航失败:
@implements IDisposable
@inject NavigationManager NavigationManager
...
protected override void OnInitialized()
{
NavigationManager.LocationChanged += HandleLocationChanged;
}
private void HandleLocationChanged(object sender, LocationChangedEventArgs e)
{
// Cancel Navigation Here
}
public void Dispose()
{
NavigationManager.LocationChanged -= HandleLocationChanged;
}
【问题讨论】:
标签: c# .net-core navigation blazor blazor-webassembly