【发布时间】:2011-07-17 22:26:45
【问题描述】:
我们正在尝试使用 json 和 jQuery .post 函数将一组对象从我们的页面发送到我们的控制器(MVC 3)。下面是我们的js代码以及控制器和对象的定义。
问题是当对象被适当地发送到我们的控制器时,它的成员变量并没有被填充。 “Coords”列表具有适当数量的“Coord”对象,但每个 Coord 对象的成员变量都填充为零(非空)而不是我们传入的值。请参见屏幕截图:
你知道我们的实现有什么问题吗?
提前致谢!
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; }
}
【问题讨论】:
-
你下载了mvc源码,给它添加了一个项目ref,并单步执行了默认的模型绑定代码吗?
-
你能在firebug/fiddler里面显示httppost body吗
标签: jquery json asp.net-mvc-3