具有子集合的AngularJs Post Object到MVC WebAPI

我正在开发一个AngularJS应用程序,并且服务js中的一个方法将数据发布到具有C#中以下对象结构的web api

public class InvitationModel { public string Name { get; set; } public string Email { get; set; } public EventModel[] EventList { get; set; } } public class EventModel { public string EventName { get; set; } public int TotalAdults { get; set; } public int TotalChildren { get; set; } public bool IsAccepted { get; set; } } 

问题是,当我将此数据发布到WEBAPI方法时,我的父级属性正确序列化,除了保存集合的属性。 它总是被设置为null。

接收请求的Web API方法是:

 [AllowAnonymous] [Route("RSVP")] [HttpPost] public bool Submit(InvitationModel invitationModel) { return true; } 

因此,Name和Email序列化正确,但EventList为NULL

我确实检查了javascript方面,我的js对象同时包含数组和其他原始属性。 问题我猜是在.NET WebAPI方面。

发布的请求有效负载是这样的:

 { "Name":"John Doe", "EventList":{ "0":{ "TotalAdults":"1", "TotalChildren":"2", "EventName":"Event 1 Name" }, "1":{ "TotalChildren":"2", "TotalAdults":"2", "EventName":"Event 2 Name" }, "2":{ "TotalAdults":"1", "TotalChildren":"1", "EventName":"Event 3 Name" } } } 

JSON中的EventList是一个属性为"0" ,“ 1 ”等的对象。

我想它应该是一个JSON数组,即

 { "Name":"John Doe", "EventList": [ {"TotalAdults":"1","TotalChildren":"2","EventName":"Event 1 Name"}, {"TotalChildren":"2","TotalAdults":"2","EventName":"Event 2 Name"}, ... ], ... 

要正确读入您的C#eventlist属性。