当在Blazor应用程序中使用NavigationManager时,有时可能会遇到NavigationManager未初始化的错误。这通常是因为NavigationManager尚未在应用程序的依赖注入容器中进行注册。
以下是解决此错误的示例代码:
Startup.cs
文件中的ConfigureServices
方法中,确保已将NavigationManager
添加到依赖注入容器中:using Microsoft.AspNetCore.Components;
public void ConfigureServices(IServiceCollection services)
{
// 添加Blazor服务
services.AddRazorPages();
services.AddServerSideBlazor();
// 添加NavigationManager到依赖注入容器中
services.AddScoped(sp =>
new NavigationManager(
sp.GetRequiredService(),
sp.GetRequiredService(),
sp.GetRequiredService()
)
);
}
NavigationManager
的组件中,通过构造函数注入NavigationManager
:@using Microsoft.AspNetCore.Components.Navigation
@inject NavigationManager navigationManager
@code {
private void GoToHome()
{
navigationManager.NavigateTo("/");
}
}
通过在ConfigureServices
方法中将NavigationManager
添加到依赖注入容器中,并在组件中进行注入,可以解决“NavigationManager未初始化”的错误。