Blazor NavigateTo报错Microsoft.AspNetCore.Components.NavigationException:“Exception_WasThrown”
2024-10-11
24
使用Blazor,在OnInitialized里执行NavigationManager.NavigateTo("/")的时候报错了:
Microsoft.AspNetCore.Components.NavigationException:“Exception_WasThrown”
网上看到说这个问题只出现在render-mode=ServerPrerendered,如果改成render-mode=Server就能好,但是我们需要使用ServerPrerendered模式,所以这不是一个很好的解决方法。
看异常信息也没有更详细的描述。
实际上它正常执行了NavigateTo("/"),并且成功地跳转到了/页面,但是会有异常中断。
我解决它的办法是把OnInitialized改为OnInitializedAsync,代码如下:
@code {
protected override async Task OnInitializedAsync()
{
if (!UserState.IsLoggedIn)
{
NavigationManager.NavigateTo("/");
}
}
}
这样不会有异常,代码正常执行跳转,但是会有警告因为没有await。
Trouble with NavigateTo within OnInitialized
https://github.com/dotnet/aspnetcore/issues/13582
在GitHub上也看到有人提出的一样的问题,但是没有解决就关闭了。
如果有更好的解决办法欢迎留言分享。
更新于:1个月前赞一波!
相关文章
- 用Blazor开发App应用可行吗?
- 前端开发有必要学习Blazor吗?
- Blazor的N种渲染模式原理和常见问题说明
- .NET Blazor 2024年发展趋势
- Blazor ServerPrerendered模式OnInitialized{Async}执行两次
- Blazor获取Url路由参数的方法
- ASP.NET Core Blazor EditForm内置表单验证显示ValidationMessage
- Blazor的5种render-mode的区别
- Blazor使用内存中状态容器服务保存和验证登陆状态
- .NET的Razor和Blazor有什么区别和联系?
- .NET的Blazor值得学习吗?Blazor的优缺点和使用场景
- Blazor适合大型项目吗?
- .NET8 Blazor三种模式的区别和使用场景
- .NET用Blazor的公司多吗?
- .NET8 Blazor的Auto渲染模式
文章评论
评论问答