繁体   English   中英

如何在调用Web.api的JavaScript中序列化数组

[英]How to serialize array in JavaScript calling Web.api

我猜以最简单的形式将数组发布到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
}

如果我将“ data:list”更改为“ data:ann”,那么一切都会按预期进行(当然bob不会出现)。 但是当我列出清单的那一刻,它就不起作用了。

我试图查找解决方案,有些似乎是在JavaScript中手动序列化的,是否是解决此问题的正确“解决方案” /“最佳实践”,还是有更简单的方法?

只需将您的ajax请求更改为:

$.ajax({
    url: '/api/myapi/',
    data:list,
    traditional: true,
    dataType: 'json',
    type: "POST",
});

如果您需要更多信息,请阅读此文章: http : //api.jquery.com/jQuery.param/

我认为这可能对您有用

$.ajax({
    url: '/api/myapi/',
    data: JSON.stringify(list),
    contentType: 'application/json',
    type: "POST",
});

还有你的控制器

public void Post(List<yourobject> list)
{
    //Whatever
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM