我尝试导航到另一个页面,但每次都会出现异常:“Microsoft.AspNetCore.Components.NavigationException:Exception_WasThrown”。你现在知道我需要做什么或者这里出了什么问题吗?
在我的仪表板页面上我有@page“/dashboard”,所以我不认为该字符串是错误的。
您是否在
@code{}
中添加了此代码?如果没有,它将得到这样的异常,但如果您仍然F5
继续调试,它将呈现重定向页面。这是引发预渲染期间发生重定向的第一次机会异常。解决方法是关闭第一次机会异常,您不会看到这种情况发生,您可以检查this github issues。
@page "/"
@inject NavigationManager NavManager
<p>Redirecting to Page</p>
@if (condition) {
NavManager.NavigateTo($"/dashboard");
}
另一个解决方法是您可以将这些代码放入
@code{}
:
@page "/"
@inject NavigationManager NavManager
<p>Redirecting to Page</p>
@code {
protected override void OnInitialized()
{
@if (condition) {
NavManager.NavigateTo($"/dashboard");
}
}
}
我面临着同样的问题,我通过使函数异步并在后面添加
await Task.CompletedTask
解决了它:
private async Task YourFunction()
{
if (yourIfCondition)
{
}
else
{
NavManager.NavigateTo($"/dashboard");
await Task.CompletedTask;
}
}
我读到这是由于框架的开发方式造成的。它应该在实际导航到新元素之前抛出异常,但在开发时不太方便。
我不是导航专家,但我想也许你需要了解基础:
LoginNavigator.NavigateTo(LoginNavigator.BaseUri + $"/dashboard", true);