сбой в привязке контроллера JSON MVC - PullRequest
1 голос
/ 29 декабря 2010

В моем приложении 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 всегда"ноль".

Я уверен, что упускаю что-то очевидное или совершенно не понимаю правильное использование атрибута «Имя».

Любой совет будет высоко ценится.

...