У меня есть эти два класса в JS:Как передать пользовательский класс с JSON контролер
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» правильно, но без какого-либо элемента массива «Puertas 'в классе' Controladora '.
$(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 равно нулю.
Что я делаю неправильно? Что-то пропало?
EDIT
Это те классы в 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 = [] ', который инициализирует пустой массив – Fabio
Я сомневаюсь, как вы сериализуете JSON. Я думаю, что это должно быть так: 'data: JSON.stringify (controladora),'. Поскольку ваши классы javascript должны быть успешно сериализованы для экземпляра C#. – Fabio