【问题标题】:API not accepting List of objects as a parameter .Net Core webAPIAPI不接受对象列表作为参数.Net Core webAPI
【发布时间】:2021-05-25 17:44:33
【问题描述】:

我正在开发一个接受对象列表作为参数的 API。 这是我正在使用的 Api:

[HttpPost("PharmacySupply")]
        public async Task<List<PharmacyMedicineSupply>> GetPharmacySupply(List<MedicineDemand> medDemand)
        {
            SupplyRepo sr = new SupplyRepo();
            return await sr.GetPharmacySupply(medDemand);
        }

这是我的模型:

public class MedicineDemand
    {
        public string Medicine { get; set; }
        public int DemandCount { get; set; }
    }

我将这个作为参数大摇大摆地传递:

[
{Dolo,7},
{Cholecalciferol,9},
{Orthoherb,5},
{Gaviscon,2},
{Hilact,3}
{Cyclopam,1}
]

但参数为空。调试时显示计数为 0。 我做错了什么?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-core .net-core webapi


    【解决方案1】:

    如果您使用邮递员进行测试,请尝试添加[FromBody]。 (See [FromBody] documentation here)

     public async Task<List<PharmacyMedicineSupply>> GetPharmacySupply([FromBody] List<MedicineDemand> medDemand)
    

    为了在邮递员中进行测试,您必须使用

    [
       { "Medicine": "Dolo", "DemandCount" : 7},
       { "Medicine": "Cholecalciferol", "DemandCount" : 9},
       ...
    ]
    

    如果你尝试用这个大摇大摆地进行测试

    [
       { "Dolo" , 7 },
       { "Cholecalciferol" , 9 },
       ...
    ]
    

    【讨论】:

    • @sapter -- you asked this question 6 小时前,我在 cmets 中告诉过您将 [FromBody] 放入参数中。请不要多次问同一个问题。
    猜你喜欢
    • 2020-10-29
    • 2018-06-21
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2021-02-07
    相关资源
    最近更新 更多