He estado luchando para encontrar una solución a este problema.Matriz de publicaciones como Controlador JSON a MVC
En mi código, estoy construyendo una matriz de un objeto;
var $marks = [];
var mark = function (x, y, counter){
this.x = x;
this.y = y;
this.counter = counter;
}
$marks.push(new mark(1, 2, 0));
$marks.push(new mark(1, 2, 1));
$marks.push(new mark(1, 2, 2));
Ahora quiero publicar estos datos a un controlador MVC, por lo que podría pensar que el tipo de datos en el controlador sería un List<Mark> Marks
o una matriz de las marcas.
Para publicar los datos, lo he intentado;
var json = JSON.stringify($marks);
$.post('url', json).done(function(data){ /* handle */ });
O
var json = { Marks: $marks };
$.post('url', json).done(function(data){ /* handle */ });
La segunda manera, cuando se mira en los datos publicados, se parece a esto
Marks[0][x]: 1
Marks[0][y]: 2
Marks[0][counter]: 0
Marks[0][x]: 1
Marks[0][y]: 2
Marks[0][counter]: 1
Marks[0][x]: 1
Marks[0][y]: 2
Marks[0][counter]: 2
pero no estoy seguro de cómo se traduce esto en un objeto fuertemente tipado en el controlador?
Mi controlador se ve así;
[HttpPost]
public ActionResult JsonSaveMarks(List<Mark> Marks){
// handle here
}
Mi clase de Mark se parece así;
public class Mark{
public string x { get; set; }
public string y { get; set; }
public string counter { get; set; }
}
He leído a través de otros problemas similares acerca de la creación de una costumbre JsonFilterAttribute, o el uso de la clase System.Web.Script.Serialization.JavaScriptSerializer, pero no puedo hacer nada para trabajar
¿Hay algo obvio que me falta aquí? ¿Tengo el DataType en el controlador completamente equivocado? ¿Cómo puedo convertir estos datos publicados en un objeto fuertemente tipado?
Muchas Gracias
¿Cómo es tu Mark-class en MVC? – Pbirkoff
@Pbirkoff He actualizado la pregunta con la clase –
marque esta pregunta, especialmente la primera respuesta: http://stackoverflow.com/questions/4789481/post-an-array-of-objects-via-json-to-asp -net-mvc3 – Pbirkoff