将整数数组传递给ASP.NET Core中的ApiController

时间:2018-08-14 08:33:04

标签: asp.net-core

我在ASP.NET Core 2.1中有一个简单的api控制器,如下所示:

[Route("api/[controller]")]
[ApiController]
public class SumController : ControllerBase
{
    [HttpGet("CalculateSum")]
    public int CalculateSum(int a, int b)
    {
        return a + b;
    }

    [HttpGet("CalculateSumOfArray")]
    public int CalculateSumOfArray(int[] values)
    {
        return values.Sum();
    }
}

第一个方法可用于如下调用:

https://localhost:44346/api/Sum/CalculateSum?a=1&b=2

但是第二个:

https://localhost:44346/api/Sum/CalculateSumOfArray?values=1&values=2&values=3

只需回复:

{"":["The input was not valid."]}.

我是否需要做一些特殊的事情才能将数组发送到ApiController?

1 个答案:

答案 0 :(得分:0)

添加 FromQuery 属性,如下所示:

    [HttpGet("CalculateSumOfArray")]
    public int CalculateSumOfArray([FromQuery(Name = "values")] int[] values)
    {
        return values.Sum();
    }