首页 > 解决方案 > 通过 GET 方法发送字符串列表参数

问题描述

我有一个 Angular 6 项目。我正在向 .NET Core 2.1 Web API 发送我的请求。我正在发送字符串水果列表,如下所示。但是,我进入 C# 的数据只有一项,例如"'apple', 'orange', 'banana'". 但是,我想要三个不同的字符串。我怎样才能做到这一点?请不要建议使用“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 });
}

C# 端

public GetFruitDetails([FromQuery] FruitModel fruitModel)
{...}

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

标签: c#angularasp.net-coreangular6asp.net-core-webapi

解决方案


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

因此,将参数组合为

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 });
}

推荐阅读