Web Api 从前面取一个数组

Web Api take an array from front

问题很简单:-)。 我是初学者。

数据到达控制器 (WebApi)。 如果你放一个物体。

[HttpPost]
public async Task<IActionResult> AddOrder(Object [] orderR)


ValueKind = Object : "{"product":{"id":"72ae28f2-4ad3-4e97-5a7b- 
08d8db1aac26","code":"666666","name":"test6","price":6,"category":"test6","orrderItems":"320d57eb- 
3333-45d2-f497-08d8d66a0d39"},"quality":1}"

ValueKind = Object : "{"product":{"id":"72ae28f2-4ad3-4e97-5a7b- 
08d8db1aac26","code":"666666","name":"test6","price":6,"category":"test6","orrderItems":"320d57eb- 
3333-45d2-f497-08d8d66a0d39"},"quality":1}"

ValueKind = Object : "{"product":{"id":"72ae28f2-4ad3-4e97-5a7b- 
08d8db1aac26","code":"666666","name":"test6","price":6,"category":"test6","orrderItems":"320d57eb- 
3333-45d2-f497-08d8d66a0d39"},"quality":1}"

我创建了一个 class。

  public class OrderR
{
    public Guid ID { get; set; }
    public Guid orrderItems { get; set; }
    public string CODE { get; set; }
    public string NAME { get; set; }
    public int PRICE { get; set; }
    public string CATEGORY { get; set; }
    }

我正在尝试获取数组。

  [HttpPost]
  public async Task<IActionResult> AddOrder(OrderR[] orderR)

但是得到null。 我究竟做错了什么? 如何正确?

新建class:

public class Order
    {
        public OrderR Product { get; set; }
        public int Quality { get; set; }
    }

并将您的操作更改为:

 [HttpPost]
  public async Task<IActionResult> AddOrder(Order[] orders)
{
  .... your code
}

已使用以下数据在 Postman 中对其进行测试:


[
 {"product":{"id":"72ae28f2-4ad3-4e97-5a7b-08d8db1aac26","code":"666666","name":"test1","price":6,"category":"test6","orrderItems":"320d57eb-3333-45d2-f497-08d8d66a0d39"},"quality":1},

{"product":{"id":"72ae28f2-4ad3-4e97-5a7b-08d8db1aac26","code":"666666","name":"test2","price":6,"category":"test6","orrderItems":"320d57eb-3333-45d2-f497-08d8d66a0d39"},"quality":1},

{"product":{"id":"72ae28f2-4ad3-4e97-5a7b-08d8db1aac26","code":"666666","name":"test3","price":6,"category":"test6","orrderItems":"320d57eb-3333-45d2-f497-08d8d66a0d39"},"quality":1}
]

一切正常。如果你也想在 Postman 中测试它,请将 [FromBody] 添加到操作输入参数中:

        [HttpPost]
        public async Task<IActionResult> AddOrder([FromBody] Order[] orders)
        {
            return Ok(orders);
        }