要在同一页中改变Blazor的路由,可以使用Blazor的NavigationManager类。NavigationManager类提供了一些方法来管理应用程序的URL和导航。
以下是一个示例代码,演示如何在同一页中改变Blazor的路由:
@page "/"
@inject NavigationManager NavigationManager
当前路由: @currentRoute
@code {
string currentRoute;
protected override void OnInitialized()
{
currentRoute = NavigationManager.Uri;
NavigationManager.LocationChanged += OnLocationChanged;
}
void OnLocationChanged(object sender, LocationChangedEventArgs e)
{
currentRoute = e.Location;
StateHasChanged();
}
void ChangeRoute()
{
NavigationManager.NavigateTo("/newroute");
}
protected override void Dispose(bool disposing)
{
// 清理资源
NavigationManager.LocationChanged -= OnLocationChanged;
}
}
在这个示例中,我们首先注入了NavigationManager类。然后,我们使用OnInitialized方法来初始化currentRoute变量,并订阅LocationChanged事件,以便在路由变化时更新currentRoute。在ChangeRoute方法中,我们使用NavigationManager的NavigateTo方法来改变路由。最后,在Dispose方法中取消订阅LocationChanged事件,以避免内存泄漏。
通过点击"改变路由"按钮,您可以在同一页中改变Blazor的路由,并在页面上显示当前路由的变化。