Объекты JSON не привязаны к модели
Некоторые объекты в JSON не привязаны к Model.
JS
var filterSet = {
"Filters":[Object1],
"FilterSets":[{
"Filters":[Object2,Object3],
"FilterSets":[{
"Filters":[Object4,Object5],
"FilterSets":[]
}]
}]
}
$.ajax({
url: '/ControllerName/GetData',
dataType: 'json',
data: JSON.stringify({
filterSet: filterSet
}),
type: 'POST',
contentType: 'application/json; charset=utf-8'
}).done(function (result) {
...
});
контроллер
public JsonResult GetData(FilterSet filterSet)
{
....
return Json(data);
}
модель
public class Filter
{
public string Field1 { get; set; }
public string Field2 { get; set; }
...
public Filter()
{
...
}
}
public class FilterSet
{
public List<Filter> Filters { get; set; }
public List<FilterSet> FilterSets { get; set; }
public FilterSet()
{
Filters = new List<Filter>();
FilterSets = new List<FilterSet>();
}
}
Список фильтров с Object4 и Object5 связан, а список фильтров с Object1 и список фильтров с Object2 и Object3 - нет. Или, возможно, они, но не заполняются правильными значениями.
Таким образом, все братья и сестры Filters непустых FilterSets являются просто пустыми списками.
Это не похоже на объект JS, вызывающий эту странную проблему. Я думаю, что-то с моделью. Чего не хватает в модели? Или что не так вообще?
1 ответ
Переименование полей решило проблему. Возможно, имя поля во множественном числе было слишком близко к имени класса.
public class FilterSet
{
public List<Filter> FilterList { get; set; }
public List<FilterSet> FilterSetList { get; set; }
public FilterSet()
{
FilterList = new List<Filter>();
FilterSetList = new List<FilterSet>();
}
}