我正在开发一个 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; }
}
问题是,当我将此数据发布到 WEB API 方法时,除了保存集合的属性之外,我的父级属性已正确序列化。它始终设置为 null。
接收请求的Web API方法是:
[AllowAnonymous]
[Route("RSVP")]
[HttpPost]
public bool Submit(InvitationModel invitationModel)
{
return true;
}
因此,名称和电子邮件序列正确,但是事件列表为 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"
}
}
}