将数组发布到web.api(api控制器)并不是最简单的形式。
我有这个JavaScript
var ann = { Age: 11, Name: 'Ann' };
var bob = { Age: 22, Name: 'Bob' };
var list = [ann, bob];
$.ajax({
url: '/api/myapi/',
data:list,
dataType: 'json',
type: "POST",
});
然后我有一个带有简单邮政处理程序的web.api
public void Post(JObject pList)
{
//Whatever
}
如果我更改"数据:列表"与"数据:ann"然后一切都按预期工作(除了bob当然不会过来)。但是,当我列出一个列表然后它就不起作用。
我试图查找解决方案,有些似乎是在JavaScript中手动序列化,这是正确的"解决方案" /"最佳实践"对于这个问题,或者有更简单的方法吗?
答案 0 :(得分:1)
只需将您的ajax请求更改为:
$.ajax({
url: '/api/myapi/',
data:list,
traditional: true,
dataType: 'json',
type: "POST",
});
如果您想了解更多信息,请阅读此内容:http://api.jquery.com/jQuery.param/
答案 1 :(得分:1)
我认为这可能适合你
$.ajax({
url: '/api/myapi/',
data: JSON.stringify(list),
contentType: 'application/json',
type: "POST",
});
和你的控制器
public void Post(List<yourobject> list)
{
//Whatever
}