C# 通过GET方法发送字符串列表参数

C# 通过GET方法发送字符串列表参数,c#,angular,asp.net-core,angular6,asp.net-core-webapi-2.1,C#,Angular,Asp.net Core,Angular6,Asp.net Core Webapi 2.1,我有一个角度6项目。我将请求发送到.NETCore2.1WebAPI。我正在发送下面的水果清单。但是,我的数据在c中只作为一个项目出现,如“苹果”、“橘子”、“香蕉”。但是,我想要三个不同的字符串。我怎样才能做到这一点请不要使用“POST”方法提出建议 getFruitDetails() { let params = new HttpParams(); params = params.append('fruitType', '35'); params = params.a

我有一个角度6项目。我将请求发送到.NETCore2.1WebAPI。我正在发送下面的水果清单。但是,我的数据在c中只作为一个项目出现,如“苹果”、“橘子”、“香蕉”。但是,我想要三个不同的字符串。我怎样才能做到这一点请不要使用“POST”方法提出建议

getFruitDetails() {
    let params = new HttpParams();
    params = params.append('fruitType', '35');
    params = params.append('fruits', JSON.stringify(['apple', 'orange', 'banana']));

    return this.http.get('https://localhost:5000/api/Fruit/GetFruitDetails', { params: params });
}
public GetFruitDetails([FromQuery] FruitModel fruitModel)
{...}

public class FruitModel
{
    public int FruitType { get; set; }
    public List<string> Fruits { get; set; }
}
角边

getFruitDetails() {
    let params = new HttpParams();
    params = params.append('fruitType', '35');
    params = params.append('fruits', JSON.stringify(['apple', 'orange', 'banana']));

    return this.http.get('https://localhost:5000/api/Fruit/GetFruitDetails', { params: params });
}
public GetFruitDetails([FromQuery] FruitModel fruitModel)
{...}

public class FruitModel
{
    public int FruitType { get; set; }
    public List<string> Fruits { get; set; }
}
C#Side

getFruitDetails() {
    let params = new HttpParams();
    params = params.append('fruitType', '35');
    params = params.append('fruits', JSON.stringify(['apple', 'orange', 'banana']));

    return this.http.get('https://localhost:5000/api/Fruit/GetFruitDetails', { params: params });
}
public GetFruitDetails([FromQuery] FruitModel fruitModel)
{...}

public class FruitModel
{
    public int FruitType { get; set; }
    public List<string> Fruits { get; set; }
}
publicGetFrootDetails([FromQuery]FrootModel-FrootModel)
{...}
公共类模型
{
公共类型{get;set;}
公共列表{get;set;}
}

属性
FromQuery
将把查询字符串中匹配
结果=值的所有查询参数添加到结果列表中

因此,将参数组合为

getFruitDetails() {
    let params = new HttpParams();
    params = params.append('fruitType', '35');
    params = params.append('fruits', 'apple');
    params = params.append('fruits', 'orange');
    params = params.append('fruits', 'banana');

    return this.http.get('https://localhost:5000/api/Fruit/GetFruitDetails', { params: params });
}

FromQuery
属性将把查询字符串中与
fruits=value
匹配的所有查询参数添加到水果列表中

因此,将参数组合为

getFruitDetails() {
    let params = new HttpParams();
    params = params.append('fruitType', '35');
    params = params.append('fruits', 'apple');
    params = params.append('fruits', 'orange');
    params = params.append('fruits', 'banana');

    return this.http.get('https://localhost:5000/api/Fruit/GetFruitDetails', { params: params });
}


为什么不使用
queryParams
?什么是queryParams?当我在谷歌上搜索时,每个结果都是HttpParams@使用url中的
发送参数,例如
https://localhost:5000/api/Fruit/GetFruitDetails/?fruit1=apple&fruit2=banana...
非常感谢@PardeepJain的回复。我不想要镶嵌线。因此,我使用的是
HttpParams
MarcusHöglund
的解决方案正是我想要的。为什么不使用
queryParams
?什么是queryParams?当我在谷歌上搜索时,每个结果都是HttpParams@使用url中的
发送参数,例如
https://localhost:5000/api/Fruit/GetFruitDetails/?fruit1=apple&fruit2=banana...
非常感谢@PardeepJain的回复。我不想要镶嵌线。因此,我使用的是
HttpParams
MarcusHöglund
的解决方案正是我想要的。非常感谢@MarcusHöglund。成功了。但是,这是一种常见的方式还是一种棘手的方式?@HasanOzdemir这是FromQuery属性的工作原理。这是标准方式:)@D-johnashani他为什么要这么做?FromQuery属性以一种优雅的方式解决了这个问题。为什么要通过手动检查来增加复杂性呢?我认为你的方法不正确@D-johnashani。因为,字符串可以有逗号。然后这种方法给出了错误的结果。您不需要使用
参数逐个传递它们。append
,您可以添加数组。。。只要不要
JSON.Stringify()
itThanks@MarcusHöglund。成功了。但是,这是一种常见的方式还是一种棘手的方式?@HasanOzdemir这是FromQuery属性的工作原理。这是标准方式:)@D-johnashani他为什么要这么做?FromQuery属性以一种优雅的方式解决了这个问题。为什么要通过手动检查来增加复杂性呢?我认为你的方法不正确@D-johnashani。因为,字符串可以有逗号。然后这种方法给出了错误的结果。您不需要使用
参数逐个传递它们。append
,您可以添加数组。。。只要不要
JSON.Stringify()