Jquery 将对象传递给web api控制器
使用jQuery和.NETWebAPI,我不会将单个对象传递给控制器。我正在努力解决的是将多个对象传递给控制器。我已经看到了一些类似的示例,但它们只讨论了单个对象的传递,我对此没有异议。以下是jQuery代码:Jquery 将对象传递给web api控制器,jquery,.net,asp.net-web-api,Jquery,.net,Asp.net Web Api,使用jQuery和.NETWebAPI,我不会将单个对象传递给控制器。我正在努力解决的是将多个对象传递给控制器。我已经看到了一些类似的示例,但它们只讨论了单个对象的传递,我对此没有异议。以下是jQuery代码: var data = settings.itemArray; if (data.length == 0) return; $.post(sApi.data.Update, JSON.stringify({'data':data}), function (results) { i
var data = settings.itemArray;
if (data.length == 0) return;
$.post(sApi.data.Update, JSON.stringify({'data':data}),
function (results) {
if (results > 0) { }
});
settings.itemArray由4个对象组成的数组组成
我的控制器是这样的:
public void Post([FromBody]List<M.DataVal> data)
{
var d = data.Count();
}
$.post(sApi.data.Update, { '': data },
function (results) {
if (results > 0) { }
});
如果我将它从一个列表更改为一个对象,而不是多个对象,那么它就可以正常工作。执行JSON.stringify没有任何区别,在控制器上设置请求方法的类型也没有任何区别。我还确保它与内容类型的标题保持一致:application/json。我可以在chromes developer tools中的Form data post中看到数据,因此数据以以下形式传递:
{"data":[{"AgencyId":80,"Year":2011,"Value":6546,"Area":1},{"AgencyId":80,"Year":2011,"Value":654654,"Area":2},{"AgencyId":80,"Year":2011,"Value":6456,"Area":3}]}:
有人知道将多个对象传递给控制器的方法,或者知道我做得不正确吗?找到了答案。当您想要以数组形式发送多个对象时,似乎需要向web api发送匿名类型。在上找到了答案 因此,jQuery将如下所示:
public void Post([FromBody]List<M.DataVal> data)
{
var d = data.Count();
}
$.post(sApi.data.Update, { '': data },
function (results) {
if (results > 0) { }
});
执行此更改将导致所有my对象都被传递并可用。希望这对某人有所帮助。为了保持一致,您能将答案放在下面的“您的答案”部分吗?