Estamos tratando de enviar una colección de objetos desde nuestra página a nuestro controlador (MVC 3) usando json y la función jQuery .post. A continuación está nuestro código js y las definiciones de controlador y objeto.
El problema es que mientras el objeto se envía correctamente a nuestro controlador, sus variables miembro no se están llenando. La lista "Coords" tiene el número apropiado de objetos "Coord" pero las variables miembro de cada objeto Coord se rellenan con cero (no nulo) en lugar de los valores que estamos pasando. Ver la captura de pantalla:
Cualquier idea qué es incorrecto con nuestra implementación?
¡Gracias de antemano!
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; }
}
¿Ha descargado la fuente MVC, agregar una referencia de proyecto a ella y pasó por el código de enlace de modelo predeterminado? – redsquare
puede mostrar el cuerpo de httppost dentro de firebug/fiddler – redsquare