【发布时间】:2018-11-12 19:44:54
【问题描述】:
当我使用 AJAX JQuery 发送 Json 时,我无法填充嵌套对象。
具体来说,我无法填充 LineItems。
LineItems 是不同类型对象的列表:可以是网站或广告系列,因此在我的服务器端,我创建了两个继承自通用产品类的类(网站/广告系列)。
json 格式是客户端通过邮件发送给我的格式,所以我想弄清楚如何将我的 c# 对象与我收到的 json 自动绑定(或不绑定)。
在控制器中,到目前为止的结果是 Order 填充了他自己的属性,但 LineItems 的分支始终是没有值的产品。
非常感谢!
模型
public class Order
{
public string Partner { get; set; }
public string OrderID { get; set; }
public List<LineItems> LineItems { get; set; }
}
public class LineItems
{
public Product Product = new Product();
}
public class Product
{
public string ID { get; set; }
public string Category { get; set; }
}
public class Website : Product
{
public WebsiteDetails WebsiteDetails = new WebsiteDetails();
}
public class WebsiteA : Website
{
public string ContactName { get; set; }
}
public class PaidSearch : Product
{
public Campaign Campaign = new Campaign();
}
public class Campaign
{
public string CampaignName { get; set; }
}
public class WebsiteDetails
{
public string TemplateId { get; set; }
public string WebsiteBusinessName { get; set; }
}
控制器
[HttpPost("rec-order")]
public JsonResult Post([FromForm]Order order)
{
return Json(new { order = order });
}
JQUERY
jQuery.ajax({
url: "/api/rec-order",
type: "POST",
dataType: 'json',
data: {
"Partner": "TNT",
"OrderID": "999888777",
"LineItems": [
{
"ID": 1,
"Category": "First Category Website",
"WebsiteDetails": {
"TemplateId": "12",
"WebsiteBusinessName": "Lorem Ipsum",
}
},
{
"ID": 1,
"Category": "First Category Campaign",
"Campaign": {
"CampaignName": "Lorem Ipsum",
}
}
]
},
success: function (data) {
console.log(data);
}
});
【问题讨论】:
标签: c# jquery json post model-view-controller