2

class在我的 ASP.NET MVC 项目中使用以下 C#:

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?

4

1 回答 1

2

只是为了澄清我的评论。属性需要声明为公共成员,以便由 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; }
}
于 2013-05-03T12:38:53.720 回答