首先,我们可以在 Razor 组件中注入 NavigationManager,这样我们就能访问查询字符串参数。然后,我们可以使用 OnInitializedAsync 方法来获取这些值并在组件的生命周期内保存它们,这样就不必每次渲染都获取一次。以下是示例代码:
@page "/mycomponent"
@inject NavigationManager NavigationManager
Welcome to My Component
@code {
private string myQueryParam;
protected override async Task OnInitializedAsync()
{
var uri = NavigationManager.ToAbsoluteUri(NavigationManager.Uri);
var queryParams = QueryHelpers.ParseQuery(uri.Query);
if (queryParams.TryGetValue("myQueryParam", out var value))
{
myQueryParam = value;
}
// do other initializations here
}
// rest of the component code here
}
在上面的示例代码中,我们首先注入了 NavigationManager。在 OnInitializedAsync
方法中,我们使用 NavigationManager
对象获取当前 URI,并将其转换为绝对 URI。然后,我们解析查询字符串并获取我们需要的参数(在此例中为myQueryParam
),并将其保存在组件级别的变量中。这样,我们只需要在初始化期间获取一次查询字符串参数,就可以在组件的生命周期内重复使用它们。最后,我们可以执行其他初始化操作。
使用以上方式,在 Blazor 服务器端,我们可以轻松地获取一次查询字符串参数并在组件的生命周期内重复使用该参数。