Question:
Is there a way on Blazor to cancel navigation?
Let's supose a siple a href
like this:
<a href="/some/other/blazor/spa/page">Go</a>
I would like to cancel navigation (for example if we are editing a form)
What I have tried.
Via JS
I set onbeforeunload
dom delegate via JSInterop:
window.onbeforeunload = function(){
return 'Vols abandonar aquesta pàgina?';
};
but blazor bypass it.
Via locationchanged
I tried unsuccessfully to intercept navigation on locationchanged
event:
@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;
}