c# - 使用参数在 blazor 中重定向
问题描述
您好,您如何Blazor
使用参数重定向到另一个页面?
@page "/auth"
@using Microsoft.AspNetCore.Blazor.Services;
@inject AuthService auth
@inject IUriHelper urihelper;
<input type="text" bind="@Username" />
<button onclick="@AuthAsync">Authenticate</button>
@functions{
public string Username { get; set; }
public string url = "/home";
public async Task AuthAsync()
{
var ticket=await this.auth.AuthenticateAsync(Username);
urihelper.NavigateTo(url); //i see no overload that accepts parameters
}
}
在这种情况下,我想导航到/home
给它一个字符串作为参数的页面。
解决方案
做这个:
- 像这样创建一个 home.cshtml 文件页面:请注意,由于尚不支持可选参数,因此使用了两个 @page 指令。第一个允许导航到没有参数的组件。第二个 @page 指令采用 {username} 路由参数并将值分配给 Username 属性。
页面/home.cshtml
@page "/home"
@page "/home/{username}"
<h1>@Username is authenticated!</h1>
@functions {
// Define a property to contain the parameter passed from the auth page
[Parameter]
private string Username { get; set; };
}
- 在您的 auth.cshtml 中执行此操作
@functions{
public string Username { get; set; }
public string url = "/home";
public async Task AuthAsync()
{
var ticket=await this.auth.AuthenticateAsync(Username);
// Attach the parameter to the url
urihelper.NavigateTo(url + "/" + Username);
}
}
希望这可以帮助...
推荐阅读
- c# - 无法从 RunWorkerCompleted 事件循环 e.Result
- reactjs - TypeError:loadedCategories.map 不是函数
- python - fill_between where 条件简单,但令人费解的问题
- graphviz - 如何创建具有直接顶级路径和分组子路径的图形
- python - 如何反转字符串中的每个单词并且Python中每个单词的第一个字母大写?
- jasper-reports - 使用 Crosstab iReport 3.7.1 执行分组求和
- sql-server - 如何将带有一列guid的csv文件导入带有uniqueidentifier类型的列的sql server表中?
- nginx - nginx如何配置处理过多的请求?
- jenkins - Jenkins Job DSL 使用配置作为 Cod 插件创建种子作业
- oop - 文件编写器函数应该放在不属于逻辑的代码中的什么位置?