在我的 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”。
我确信我遗漏了一些明显的东西或完全无法理解“名称”属性的正确用法。
任何建议将不胜感激。