-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Closed as not planned
Labels
✔️ Resolution: DuplicateResolved as a duplicate of another issueResolved as a duplicate of another issueStatus: Resolvedarea-blazorIncludes: Blazor, Razor ComponentsIncludes: Blazor, Razor Components
Description
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
In a Blazor SSR app, NavigationManager.NavigateTo always throws an exception.
The problem with this approach is when debugging async await methods in Visual Studio the debugger does not stop to show this exception, so the developer is unaware.
It is therefore likely the developer will include the call to NavigateTo within a try block, and then navigation fails...
private async Task Save()
{
try
{
await Task.CompletedTask; // A task that may throw an exception
NavigationManager.NavigateTo("/success");
}
catch
{
// Log the exception and show an error to the user
}
}Expected Behavior
It should not throw an exception.
I should be able to write the same code as I would for Server or WASM Blazor apps.
Steps To Reproduce
// VS will stop and show the exception
private void Example1()
{
NavigationManager.NavigateTo("/eggs");
}
// But I need some async code in my save handler
// VS will NOT stop and show the exception
private async Task Example2()
{
await Task.CompletedTask; // My complex task
NavigationManager.NavigateTo("/eggs");
}
// My own async code might throw an exception, so I
// wrap it in a try/catch to tell the user the operation failed
// This will successfully execute the task, but never navigate
private async Task Example3()
{
ErrorMessage = null;
try
{
await Task.CompletedTask; // My complex task
NavigationManager.NavigateTo("/eggs");
}
catch
{
ErrorMessage = "The operation failed";
}
}Exceptions (if any)
Microsoft.AspNetCore.Components.NavigationException
.NET Version
8.0.303
Anything else?
No response
Metadata
Metadata
Assignees
Labels
✔️ Resolution: DuplicateResolved as a duplicate of another issueResolved as a duplicate of another issueStatus: Resolvedarea-blazorIncludes: Blazor, Razor ComponentsIncludes: Blazor, Razor Components