WebApi Controller,具有子集合的POST对象的复杂对象

时间:2013-09-10 10:23:33

标签: list asp.net-mvc-4 post asp.net-web-api

我必须POST这个对象结构:

public class Parent
{
    public List<Child> Childs {get; set;}
}

public class Child
{
    public String Name {get; set;}
}

我使用jquery进行POST调用:

var myjson={
   "Childs":[{"Name":"Pippo"},{"Name":"Pluto"}]
}

$.ajax({
        type: "POST",
        url: "/parent",
        dataType: "json",
        contentType: "application/json",
        data: JSON.stringify(myjson),
        traditional: true,
        success: function (result) {
            console.log(result);
        },
        error: function (error) {
            alert("There was an error posting the data to the server: " + error.responseText);
        }
    });

这是ParentController:

public class ParentController : ApiController{

   [HttpPost]
   [ActionName("DefaultAction")]
   public HttpResponseMessage Post(Parent obj){
      // obj.Childs.Count is 2
      // but obj.Childs[0].Name is null
   }

}

问题是我收到一个有两个孩子的父对象,但是孩子的名字是空的。


  

更新,我找到了解决方法   这种方式似乎有效:

public class ParentController : ApiController{

   [HttpPost]
   [ActionName("DefaultAction")]
   public HttpResponseMessage Post(JObject obj){
      Parent p=obj.ToObject<Parent>();
      // p.Childs[0].Name is Pippo
   }

}

0 个答案:

没有答案