【问题标题】:Posting list of object to controller, not MVC将对象列表发布到控制器,而不是 MVC
【发布时间】:2014-03-31 10:45:30
【问题描述】:

首先,我没有使用 MVC,而只是使用了路由和控制器(为了创建 RESTful API)。我正在使用 c# 网络表单

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

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

MVC Send list through AJAX

我得到的数据是空的,即使我尝试在 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 "";
}

【问题讨论】:

  • 你为什么不用WebApi?
  • 如果你删除 JSON.stringify 并只使用 data:data 是否有效?

标签: c# asp.net ajax


【解决方案1】:

您将仓库列表包装在一个对象中。相反,您只想发布 Warehouses 数组。

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 2017-02-22
    • 1970-01-01
    • 2014-11-26
    • 2014-10-31
    • 2011-11-26
    相关资源
    最近更新 更多