【问题标题】:.Net Core Blazor How to pass multiple parameters?.Net Core Blazor 如何传递多个参数?
【发布时间】:2020-04-14 10:10:36
【问题描述】:

点击一个TAB来传递多个参数。领取方式

<a href="../navigatetopage?id="1"&key="img"></a>

在您要导航到的页面中,将参数添加到您的路线:

@page "/navigatetopage/"

[Parameter]
private string myvalue{ get; set; }

【问题讨论】:

  • 你的意思是通过 url 传递多个参数吗?
  • 点击TAB发送给路由接收者
  • 但我没有在您的问题中看到 TAB?您能否详细说明您的问题,向我们展示您到底想做什么?
  • ok 问题已修改。

标签: asp.net-core blazor


【解决方案1】:

最简单的方法是使用 Route 参数而不是 QueryString:

@page "/navigatetopage/{id:int}/{key}"

@code {
    [Parameter] public int Id{get;set;}
    [Parameter] public string Key{get;set;}

    ...
}

网址看起来像:

<a href="../navigatetopage/1/img"></a>

或者如果您确实想查询字符串,请在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;
        }
    }
}

【讨论】:

  • 这是否可以通过 2 个单独的 GUID 以相同的方式实现?
  • @itminus 使用查询字符串方法,当我们在同一页面中导航时,调用 OnParametersSet()(即仅更新查询字符串),对吗?
猜你喜欢
  • 2021-01-06
  • 1970-01-01
  • 2020-12-15
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多