首页 > 解决方案 > Web Api 从前面获取一个数组

问题描述

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

数据到达控制器 (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}"

我创建了一个类。

  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。我究竟做错了什么?它是如何正确的?

标签: asp.net-web-apiasp.net-web-api2asp.net-core-webapi

解决方案


创建新类:

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

推荐阅读