我已经在我的页面中放置了:
<NavigationLock ConfirmExternalNavigation="@changed" OnBeforeInternalNavigation="BeforeInternalNavigation" />
在我的代码中我设置:
private bool changed = false;
为 true 时,我希望询问用户是否离开页面。
当用户尝试导航到外部位置时,这一切都可以正常工作。但是,它不适用于内部导航。
对于内部导航事件我有:
[Inject]
public IJSRuntime JS { get; set; }
private async Task BeforeInternalNavigation(LocationChangingContext context)
{
if (changed)
{
var proceed = await JS.InvokeAsync<bool>("Confirm", "Are you sure you want to continue?");
if (!proceed)
context.PreventNavigation();
}
}
该方法按预期命中,但 JS.InvokeAsync 不会调用默认对话框,有人可以告诉我哪里出了问题吗?我知道我可以重定向到自定义对话框,但我想使其与默认的外部对话框保持一致。
JS区分大小写,改变这个
到
它应该按预期工作。