API操作-值“ 1,2”无效

时间:2019-05-17 09:45:52

标签: asp.net-core asp.net-core-2.2

使用Asp.Net Core 2.2,我正在使用以下方法调用API:

products?productsIds=1,2&offset=10&limit=4

但是我收到了productIds的模型绑定错误:

The value '1,2' is not valid.

我尝试使用productsIds=1,在这种情况下,它可以工作。

OffsetLimit也获得正确的值...

API模型和操作如下:

public class Request {
  public IList<Int32> ProductsIds { get; set; }
  public Int32 Limit { get; set; }
  public Int32 Offset { get; set; }
}

[ApiController]
public class ProductController : ControllerBase {

  [HttpGet("products")]
  public async Task<IActionResult> Get([FromQuery]Request request) {
    // Action code
  }

}

我想念什么?

更新

这与此Question不同,因为该问题中提出的解决方案使用[FromUri]

属性[FromUri]在ASP.NET Core 2.2 ApiControllerMicrosoft Docs)中不可用。

2 个答案:

答案 0 :(得分:1)

尝试此操作,您可以使用HttpContext.Request.Query来获取参数

喜欢

HttpContext.Request.Query["ProductsIds"]

答案 1 :(得分:1)

如果您要将List作为GET参数传递,请使用以下查询

products?productsIds=1&productsIds=2