Web API 2 多个嵌套模型
Web API 2 multiple nested models
我正在创建一个网络服务,其中可以 post 多行的新订单。
型号
public class Order {
public int OrderID { get; set; }
public string Description { get; set; }
public string Account { get; set; }
public ICollection<OrderLine> OrderLine { get; set; }
}
public class OrderLine {
public int OrderLineID { get; set; }
public int OrderID { get; set; }
public string Product { get; set; }
public double Price { get; set; }
}
控制器
public class OrderController : ApiController
{
[HttpPost]
public string Create(Order order)
{
OrderRepository or = new OrderRepository();
return "Foo";
}
}
使用 Postman,我在 Json 中创建了一个 post 请求,如下所示:
{"Description" : "Abc", "Account" : "MyAccount",
"OrderLine[0]" : {
"ItemCode": "Item1",
"Price" : "10"
}
}
当我 运行 Visual Studio 中的调试器时,Order 模型是从请求中填充的,但 OrderLine 为 NULL。当我改变
public ICollection<OrderLine> OrderLine {get; set;}
到
public OrderLine OrderLine {get; set;}
还有我在 Postman 中的 Json 字符串
{"Description" : "Abc", "YourReference" : "yourABC", "Account" : "AB1010",
"OrderLine" : {
"ItemCode": "Item1",
"Price" : "10"
}
}
当我 post 数据时,我的模型被填充。我想要 post OrderLines 的集合。我做错了什么?
您正在发布 OrderLine
的数组,因此您的请求需要包含一个数组:
"OrderLine" : [{}, {}]
它应该是这样的:
{"Description" : "Abc", "YourReference" : "yourABC", "Account" : "AB1010",
"OrderLine" : [{
"ItemCode": "Item1",
"Price" : "10"
},
{
"ItemCode": "Item2",
"Price" : "20"
}]
}
我正在创建一个网络服务,其中可以 post 多行的新订单。
型号
public class Order {
public int OrderID { get; set; }
public string Description { get; set; }
public string Account { get; set; }
public ICollection<OrderLine> OrderLine { get; set; }
}
public class OrderLine {
public int OrderLineID { get; set; }
public int OrderID { get; set; }
public string Product { get; set; }
public double Price { get; set; }
}
控制器
public class OrderController : ApiController
{
[HttpPost]
public string Create(Order order)
{
OrderRepository or = new OrderRepository();
return "Foo";
}
}
使用 Postman,我在 Json 中创建了一个 post 请求,如下所示:
{"Description" : "Abc", "Account" : "MyAccount",
"OrderLine[0]" : {
"ItemCode": "Item1",
"Price" : "10"
}
}
当我 运行 Visual Studio 中的调试器时,Order 模型是从请求中填充的,但 OrderLine 为 NULL。当我改变
public ICollection<OrderLine> OrderLine {get; set;}
到
public OrderLine OrderLine {get; set;}
还有我在 Postman 中的 Json 字符串
{"Description" : "Abc", "YourReference" : "yourABC", "Account" : "AB1010",
"OrderLine" : {
"ItemCode": "Item1",
"Price" : "10"
}
}
当我 post 数据时,我的模型被填充。我想要 post OrderLines 的集合。我做错了什么?
您正在发布 OrderLine
的数组,因此您的请求需要包含一个数组:
"OrderLine" : [{}, {}]
它应该是这样的:
{"Description" : "Abc", "YourReference" : "yourABC", "Account" : "AB1010",
"OrderLine" : [{
"ItemCode": "Item1",
"Price" : "10"
},
{
"ItemCode": "Item2",
"Price" : "20"
}]
}