在 C# 代码中使用 NavigationManager 来来管理 URI 和导航。 NavigationManager 提供下表所示的事件和方法。
成员 | 描述 |
---|---|
Uri | 获取当前绝对 URI。 |
BaseUri | 获取可在相对 URI 路径之前添加用于生成绝对 URI 的基 URI(带有尾部反斜杠)。 通常,BaseUri 对应于 wwwroot/index.html (Blazor WebAssembly) 或 Pages/_Host.cshtml (Blazor Server) 中文档的 <base> 元素上的 href 属性。 |
NavigateTo | 导航到指定 URI。 如果 forceLoad 为 true ,则:
|
LocationChanged | 导航位置更改时触发的事件。 |
ToAbsoluteUri | 将相对 URI 转换为绝对 URI。 |
ToBaseRelativePath | 给定基 URI(例如,之前由 BaseUri 返回的 URI),将绝对 URI 转换为相对于基 URI 前缀的 URI。 |
@page “/navigate”
@using Microsoft.Extensions.Logging
@implements IDisposable
@inject ILogger Logger
@inject NavigationManager NavigationManager
Navigate in component code example
<button class=“btn btn-primary” @οnclick=“NavigateToCounterComponent”>
Navigate to the Counter component
@code {
private void NavigateToCounterComponent()
{
NavigationManager.NavigateTo(“counter”);
}
protected override void OnInitialized()
{
NavigationManager.LocationChanged += HandleLocationChanged;
}
private void HandleLocationChanged(object sender, LocationChangedEventArgs e)
{
Logger.LogInformation("URL of new location: {Location}", e.Location);
}
public void Dispose()
{
NavigationManager.LocationChanged -= HandleLocationChanged;
}
}