将对象的列表发布到控制器,而不是MVC

时间:2014-03-30 16:17:10

标签: c# asp.net ajax

首先,我不使用MVC,只使用它的路由和控制器(为了创建RESTful API)。我正在使用c#web form

我遇到的问题是使用AJAX发布到我的api控制器的对象列表。我已经阅读了几个例子并尝试了他们的例子没有anvil =(我试过的一个例子是:

Passing A List Of Objects Into An MVC Controller Method Using jQuery Ajax

MVC Send list through 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 "";
}

1 个答案:

答案 0 :(得分:2)

您将仓库列表包装在一个对象中。你想要只发布仓库数组。

试试这个:

var data = [];
data.push({
    PID: 2,
    PIDN: 'ABC',
    CName: 'Toy',
    EName: 'AKE-14',
    Qty: 4,
});