【发布时间】:2016-09-25 00:01:46
【问题描述】:
我在 JS 中有这两个类:
class Puerta {
constructor(nro, tipo) {
this.nroPuerta = nro;
this.tipoPuerta = tipo;
}
}
class Controladora {
constructor(ip, segundos, puertas) {
this.ipControladora = ip;
this.apuertaSegundosControladora = segundos;
this.listaPuertas = puertas;
}
}
我有这段代码,它正确传递了“Controladora”,但在“Controladora”类中没有“Puertas”数组的任何元素。
$(document).ready(function (){
var puertas = [];
for(var i = 1;i<=3;i++){
puertas.push(new Puerta(i,"String " + i);
}
var controladora = new Controladora("192.168.1.1", 30, puertas);
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
url: '/Controladora/Prueba',
data: JSON.stringify({ 'Controladora': controladora }),
success: function () {
},
failure: function (response) {
}
});
});
在控制器中,我得到“Controladora”,但 listaPuertas 为空。
我做错了什么?缺少什么?
编辑
这是 C# 中的类:
public class Puerta
{
public int nroPuerta{ get; set; }
public string tipoPuerta { get; set; }
}
public class Controladora
{
public string ipControladora { get; set; }
public int apuertaSegundosControladora { get; set; }
public List<Puerta> listaPuertas { get; set; }
}
【问题讨论】:
-
在问题中显示你的控制器方法(不是图片链接)和你绑定的模型
-
Controladora的构造函数只接受两个参数,但您传递了三个参数,并使用this.listaPuertas = []初始化空数组 -
我怀疑您序列化为 JSON 的方式。我认为它需要是这样的:
data: JSON.stringify(controladora),。因为你的javascript类需要成功序列化到c#实例。 -
我试过了,没用,每个属性都是空的。这就是我这样做的原因。
标签: c# json ajax asp.net-mvc post