我正在尝试使用Blazor ServerSide,并创建了一个在用户未登录时重定向到登录页面的组件。

@inject Microsoft.AspNetCore.Components.NavigationManager NavigationManager;

@code {
/// <inheritdoc />
protected override Task OnInitializedAsync()
{
    NavigationManager.NavigateTo("Login");
    return Task.CompletedTask;
}

}

但总是在调用“NavigateTo”时会引发以下异常:
"Microsoft.AspNetCore.Components.NavigationException: Exception of type 'Microsoft.AspNetCore.Components.NavigationException' was thrown.
   at Microsoft.AspNetCore.Components.Server.Circuits.RemoteNavigationManager.NavigateToCore(String uri, Boolean forceLoad)
   at Microsoft.AspNetCore.Components.NavigationManager.NavigateTo(String uri, Boolean forceLoad)
   at ApplySupportTool.Blazor.Pages.RedirectToLogin.OnInitializedAsync() in C:\\Users\\padruttn\\Documents\\git\\ApplySupportTool\\src\\ApplySupportTool.Blazor\\Pages\\RedirectToLogin.razor:line 8"

有趣的是,尽管有异常(exception),仍进行导航。
我也尝试使用路径“/ login”来调用它,但此处行为相同。

最佳答案

这个问题有一个open issue on github。另请参见preceeding issue,其中提到了可能的解决方法:将NavigateTo方法放入OnAfterRender而不是OnInitialized中。

关于asp.net-core - NavigateTo上的NavigationError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58076758/

10-13 00:00