我正在尝试使用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/