1

私の MVC3 RC2 アプリケーションでは、JsTree の JSON_DATA プラグインのget_json()呼び出しを使用してJsTreeからツリー構造を取得し、コントローラーの Action メソッドへの Ajax コールバックを使用しています。

[HttpPost]
public virtual ActionResult JsTreeTest(List<JsTreeNode> jsTreeNodes)
{
    // convert passed POCO back to JSON for debugging/comparison
    string json = JsonHelper.Serialize(jsTreeNodes);

    // convert JSON to POCO for debugging/comparison
    List<JsTreeNode> r = JsonHelper.Deserialize<List<JsTreeNode>>(json);

    return View(MVC.Home.JsTreeTest());
}

私の JsTreeNode クラスの定義は次のとおりです。

[DataContract]
public class JsTreeNode
{
    [DataMember]
    public NodeAttributes attr { get; set; }

    [DataMember]
    public Data data { get; set; }

    [DataMember]
    public string state { get; set; }

    [DataMember]
    public List<JsTreeNode> children { get; set; }
}

これは 100% 問題なく動作しますが、混乱を避けるために、"attr" プロパティの名前を "nodeAttributes" に変更したいので、クラス定義を次のように変更しました。

[DataContract]
public class JsTreeNode
{
    [DataMember(Name = "attr")]                        // Expecting name "attr" in JSON
    public NodeAttributes nodeAttributes { get; set; } // Store the "attr" value here

    [DataMember]
    public Data data { get; set; }

    [DataMember]
    public string state { get; set; }

ただし、現在、渡される nodeAttributes の値は常に「null」です。

明らかな何かが欠けているか、「名前」属性の正しい使用法を完全に理解していないと確信しています。

アドバイスをいただければ幸いです。

4

0 に答える 0