返回

Blazor NavigateTo报错Microsoft.AspNetCore.Components.NavigationException:“Exception_WasThrown”

2023-04-02 Blazor NavigateTo NavigateTo报错 NavigationException Exception_WasThrown 1413 0

使用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上也看到有人提出的一样的问题,但是没有解决就关闭了。

如果有更好的解决办法欢迎留言分享。

您可能感兴趣:

阿里云 云服务器 99元1年 2核2G 3M固定带宽 续费与新购同价

DOVE 网络加速器免费试用

顶部