我们正在尝试使用json和jQuery的.post函数将对象集合从我们的页面发送到我们的控制器(MVC 3)。以下是我们的js代码以及控制器和对象定义。
问题在于,虽然对象被适当地发送到我们的控制器,但它的成员变量没有被填充。"Coords"列表具有适当数量的"Coord"对象,但每个Coord对象的成员变量被填充为零(而不是null),而不是我们传递的值。请参见截图:
对于我们的实现有什么问题吗?
提前感谢!
问题在于,虽然对象被适当地发送到我们的控制器,但它的成员变量没有被填充。"Coords"列表具有适当数量的"Coord"对象,但每个Coord对象的成员变量被填充为零(而不是null),而不是我们传递的值。请参见截图:
对于我们的实现有什么问题吗?
提前感谢!
Coord1 = { "X": 100, "Y": 200 };
Coord2 = { "X": 300, "Y": 400 };
zoneData = { "Color": "#D8F834", "Name": "new zone", "Coords": [Coord1, Coord2] }
$.post("/Demo/SaveZone", zoneData, function (resp) {
alert(resp);
}, "json");
[HttpPost]
public ActionResult SaveZone(ZoneViewModel zvm)
{
Zone z;
z = AutoMapper.Mapper.Map<ZoneViewModel, Zone>(zvm);
_db.Zone.Attach(z);
_db.SaveChanges();
return View();
}
public class ZoneViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Color { get; set; }
public CoordViewModel[] Coords { get; set; }
}
public class CoordViewModel
{
public int Id { get; set; }
public int X { get; set; }
public int Y { get; set; }
}