В моем приложении MVC3 RC2 я извлекаю древовидную структуру из JsTree , используя get_json () его плагина JSON_DATA и используя обратный вызов 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% нормально, но чтобы избежать путаницы, я хочу переименовать свойство "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 всегда"ноль".
Я уверен, что упускаю что-то очевидное или совершенно не понимаю правильное использование атрибута «Имя».
Любой совет будет высоко ценится.