Blazor NavigationManager.NavigateTo 方法改变了 URL,但实际上没有加载页面。这是因为 Blazor 默认使用单页应用程序(SPA)模式。在 SPA 模式下,如果使用同一个根组件来处理所有 URL,那么导航时仅仅是更改了 URL,而没有重新加载组件。
为了解决这个问题,可以在组件内部设置 OnInitializedAsync 方法来实现异步加载组件。在导航时使用的 URL 发生变化时,将会重新加载组件,因此可以在 OnInitializedAsync 方法中添加需要加载的数据或执行其他必要的操作。
以下是示例代码:
@page "/my-page"
@inject NavigationManager NavigationManager
@code {
private async Task NavigateToPage()
{
await NavigationManager.NavigateToAsync("/another-page");
}
protected override async Task OnInitializedAsync()
{
// Add component initialization logic here
}
}