我在ASP.NET MVC项目中使用以下C#class
:
public class ZoneModel {
public int Id { get; set; }
public int Number { get; set; }
public string Name { get; set; }
public bool LineFault { get; set; }
public bool Sprinkler { get; set; }
public int Resistance { get; set; }
public string ZoneVersion { get; set; }
List<DetectorModel> Detectors { get; set; }
}
在我的一个Controller
中,我有一个Action
,返回类型为JsonResult
,我从中返回ZoneModel
个对象的列表(填充自数据库)。 Detectors
属性包含数据,但是当我使用return Json(viewModel);
从控制器返回列表时,序列化响应中缺少检测器列表。
为什么Detectors
属性没有序列化为JSON?
答案 0 :(得分:2)
只是为了澄清我的评论。需要将属性声明为Public成员才能通过JSON.NET或内置的JavaScriptSerializer进行序列化。
public class ZoneModel {
public int Id { get; set; }
public int Number { get; set; }
public string Name { get; set; }
public bool LineFault { get; set; }
public bool Sprinkler { get; set; }
public int Resistance { get; set; }
public string ZoneVersion { get; set; }
// this property will not be serialized since it is private (by default)
List<DetectorModel> Detectors { get; set; }
}