我已经阅读并尝试了this和this,并继续在圈子里走来走去。
编辑:客户端正在发送它收到的模型,服务器根据下面列出的类构建复杂类型并将其发送到客户端,客户端发回完全相同的模型但模型binder不会绑定它。
使用AngularJS向我的web api发布包含复杂类型列表的复杂类型。邮政机构如下:
I尝试绑定的复杂类型是:
public class AttendanceSelectTModel
{
public List<AttendanceChildSelectTModel> CA { get; set; }
public List<AttendanceChildSelectTModel> CI { get; set; }
public bool SignIn { get; set; }
public AttendanceSelectTModel() { }
public AttendanceSelectTModel(List<Person> ppl)
{
CA = new List<AttendanceChildSelectTModel>();
CI = new List<AttendanceChildSelectTModel>();
foreach (Person p in ppl)
if (p.Status == Status.SignedIn)
CA.Add(new AttendanceChildSelectTModel(p));
else
CI.Add(new AttendanceChildSelectTModel(p));
}
}
public class AttendanceChildSelectTModel
{
public string Name { get; set; }
public int PId { get; set; }
public string ImgURL { get; set; }
public AttendanceChildSelectTModel() { }
public AttendanceChildSelectTModel(Person user)
{
Name = user.FirstName;
PId = user.PersonId;
ImgURL = user.ImgURL;
}
}
你能指出我正确的方向吗?是我试图做甚至可能的事情,还是我不能绑定到复杂类型列表?
谢谢!
答案 0 :(得分:0)
不幸的是,Model Binder无法绑定到包含复杂类型列表的复杂类型。我的解决方案是将复杂类型分解为一个变量的平面列表,不是很好,因为我使用的是angularJs。另一种解决方案是扩展模型binder类并手动处理数据绑定。