首先,我不使用MVC,只使用它的路由和控制器(为了创建RESTful API)。我正在使用c#web form
我遇到的问题是使用AJAX发布到我的api控制器的对象列表。我已经阅读了几个例子并尝试了他们的例子没有anvil =(我试过的一个例子是:
Passing A List Of Objects Into An MVC Controller Method Using jQuery Ajax
和
我得到的数据是null,即使我尝试添加传统:在AJAX中为true,仍然没有运气。 也许有人可以给我一些见解。这是我的代码:
的javascript:
var data = { warehouseProduct: [] };
data.warehouseProduct.push({
PID: 2,
PIDN: 'ABC',
CName: 'Toy',
EName: 'AKE-14',
Qty: 4,
});
$.ajax({
url: "/api/warehouse/PostUpdateData",
type: "POST",
contentType: 'application/json; charset=utf-8',
async: false,
dataType: "json",
traditional: true,
data: JSON.stringify(data),
error: function (xhr, ajaxOptions, thrownError)
{
alert(thrownError);
}
}).done(function (msg)
{
});
这是控制器中的代码:
public string PostUpdateData(List<Warehouse> warehouseProduct)
{
// do something here
return "";
}
答案 0 :(得分:2)
您将仓库列表包装在一个对象中。你想要只发布仓库数组。
试试这个:
var data = [];
data.push({
PID: 2,
PIDN: 'ABC',
CName: 'Toy',
EName: 'AKE-14',
Qty: 4,
});