1

在我的 MVC3 RC2 应用程序中,我使用其 JSON_DATA 插件的get_json()调用从JsTree检索树结构,并使用 Ajax 调用返回到我的控制器中的 Action 方法。

[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% OK - 但为了避免混淆,我想将“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