2

classASP.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の の1 つにAction、戻り値の型が の がありJsonResult、そこからオブジェクトのリストZoneModel(データベースから取り込まれたもの) を返します。Detectorsプロパティにはデータが含まれていますが、 を使用してコントローラーからリストを返すと、return Json(viewModel);シリアル化された応答に検出器のリストがありません。

Detectorsプロパティが JSON にシリアル化されないのはなぜですか?

4

1 に答える 1

2

私のコメントを明確にするために。プロパティは、JSON.NET または組み込みの JavaScriptSerializer によってシリアル化されるために、Public メンバーとして宣言する必要があります。

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 に答える