gpt4 book ai didi

c# - Blazor Navigationmanager 取消位置上的导航已更改

转载 作者:行者123 更新时间:2023-12-04 11:50:29 33 4
gpt4 key购买 nike

题:
Blazor 有没有办法取消导航?
让我们假设一个简单的 a href像这样:

<a href="/some/other/blazor/spa/page">Go</a>
我想取消导航(例如,如果我们正在编辑表单)
我尝试过的。
通过JS
我设置了 onbeforeunload通过 JSInterop 的 dom 委托(delegate):
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;
}

最佳答案

目前没有,正在为 .NET V5 讨论此功能 - 并且有一个社区贡献拉取请求,因此希望能够实现。https://github.com/dotnet/aspnetcore/pull/24417
在 Blazor 中导航时页面不会更改,因此没有卸载以触发 onbeforeunload。

关于c# - Blazor Navigationmanager 取消位置上的导航已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63189021/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com