tengo mi matriz poblada de este modo:Pase la lista de entradas de JavaScript a C# - Obtengo la lista, pero está vacía; ¿los datos del formulario no están estructurados correctamente?
lado del servidorupdateLabels: function() {
var diagrams = _stage.diagramLayer.getChildren();
var componentIDs = new Array();
for (var index = 0; index < diagrams.length; index++) {
componentIDs.push(diagrams[index].componentID);
}
var self = this;
$.ajax({
url: '../PlanView/UpdateDiagrams',
type: 'POST',
data: { ComponentIDs: JSON.stringify(componentIDs), RackInfo: $('#RackInfoSelect').val() },
success: function (data) {
console.log('success');
},
error: function() {
console.log("error");
}
});
},
que tiene este método:
[CompressionFilterAttribute]
public JsonResult UpdateDiagrams(List<int> componentIDs, string rackInfo)
{
List<object> diagramInformation = new List<object>(componentIDs.Count());
}
mis datos a medida que se pasa a través de la red:
ComponentIDs:[74,445,732,351,348,347,1123,599,600,1053,350,601,602,603,332,99,877,919,349,348,347,347,349,348]
RackInfo:Equipment Weight
I obtener con éxito RackInfo, si cambio UpdateDiagrams para esperar List<string>
, entonces obtengo una lista con un elemento, toda la cadena ComponentIDs.
¿Qué estoy haciendo incorrectamente aquí?
EDITAR: Estoy trabajando con MVC3. Debería poder aprovechar algún tipo de deserialización automática cuando pasé a mi controlador, no estoy seguro de cómo.
SOLUCIÓN: La solución fue envolver mi objeto de datos en JSON.stringify, no solo en ID de componente. Aunque puedo obtener la variable RackInfo del lado del servidor sin convertirla a JSON.
Tal vez 'componentIDs.push (parseInt (diagramas [index] .componentID)); '? – MiMo