我必须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
}
}