ken*_*ent 10 asp.net-core blazor
单击一个选项卡以传递多个参数。如何领取
<a href="../navigatetopage?id="1"&key="img"></a>
Run Code Online (Sandbox Code Playgroud)
在您要导航到的页面中,将参数添加到您的路线中:
@page "/navigatetopage/"
[Parameter]
private string myvalue{ get; set; }
Run Code Online (Sandbox Code Playgroud)
itm*_*nus 17
最简单的方法是使用 Route 参数而不是 QueryString:
@page "/navigatetopage/{id:int}/{key}"
@code {
[Parameter] public int Id{get;set;}
[Parameter] public string Key{get;set;}
...
}
Run Code Online (Sandbox Code Playgroud)
网址如下所示:
<a href="../navigatetopage/1/img"></a>
Run Code Online (Sandbox Code Playgroud)
或者,如果您确实想查询字符串,请在以下范围内设置属性/字段OnParametersSet():
@page "/navigatetopage/"
@code {
public int Id{get;set;}
public string Key{get;set;}
protected override void OnParametersSet(){
var qs= navManager.ToAbsoluteUri(navManager.Uri).Query;
var query = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(qs);
if (query.TryGetValue("id", out var id_str)) {
if (Int32.TryParse(id_str, out var id)){
this.Id = id;
}
}
if (query.TryGetValue("Key", out var key)) {
this.Key = key;
}
}
}
Run Code Online (Sandbox Code Playgroud)
将多个参数传递到页面的一个非常简单的解决方案是使用[SupplyParameterFromQuery(Name = "myParam")]
@code {
[Parameter]
[SupplyParameterFromQuery(Name = "id")]
public int myId { get; set; }
[Parameter]
[SupplyParameterFromQuery(Name = "Key")]
public String myKey { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后更改路由@page“navigatetopage”是没有用的。
我们也可以写/navigatetopage?id=1&key=img
| 归档时间: |
|
| 查看次数: |
6908 次 |
| 最近记录: |