繁体   English   中英

无法使用AJAX发布多个值

[英]Cannot POST more than one value with AJAX

我坚持一件事。 我的复选框内有2个网格。 当我选中该复选框时,我要发布该行数据值,例如数组或列表。 实际上,当我发送一个列表项时,它没有错误地发布,但是当我获得多个项目时,它无法发布值。

我的网格的例子 我的网格的例子

这是我的ajax请求以及如何选择行值的功能

 var grid = $("#InvoceGrid").data('kendoGrid');
var sel = $("input:checked", grid.tbody).closest("tr");
var items = [];
$.each(sel, function (idx, row) {
    var item = grid.dataItem(row);
    items.push(item);
});

var grid1 = $("#DeliveryGrid").data('kendoGrid');
var sel1 = $("input:checked", grid1.tbody).closest("tr");
var items1 = [];
$.each(sel1, function (idx, row) {
    var item1 = grid1.dataItem(row);
    items1.push(item1);
});

$.ajax({
    url: '../HeadOffice/CreateInvoice',
    type: 'POST',
    data: JSON.stringify({ 'items': items, 'items1': items1, 'refnum': refnum }),
    contentType: 'application/json',
    traditional: true,
    success: function (msg) {
        if (msg == "0") {
            $("#lblMessageInvoice").text("Invoices have been created.")
            var del = $("#InvoiceOKWindow").data("kendoWindow");
            del.center().open();
            var del1 = $("#InvoiceDetail").data("kendoWindow");
            del1.center().close();
            $("#grdDlvInv").data('kendoGrid').dataSource.read();
        }
        else {
            $("#lblMessageInvoice").text("Problem occured. Please try again later.")
            var del = $("#InvoiceOKWindow").data("kendoWindow");
            del.center().open();
            return false;
        }
    }
});

这是我的C#部分

[HttpPost]
    public string CreateInvoice(List<Pm_I_GecisTo_Result> items, List<Pm_I_GecisFrom_Result> items1, string refnum)
    {
        try
        {
            if (items != null && items1 != null)
            {
                //do Something
            }
            else
            {
                Log.append("Items not selected", 50);
                return "-1";
            }


        }
        catch (Exception ex)
        {
            Log.append("Exception in Create Invoice action of HeadOfficeController " + ex.ToString(), 50);
            return "-1";
        }
    }

但是当我只发送一行时,它可以工作,但是当我尝试发送多个值时,它会发布null并造成问题

我该如何解决? 你有什么主意吗?

编辑

我忘了说,但是这种方式在本地环境中有效,但是当我更新服务器时却无法正常工作。

     $.ajax({
                url: '../HeadOffice/CreateInvoice',
                type: 'POST',
                async: false,
                data: { items: items, items1: items1 }

                success: function (msg) {
                   //add codes
                },
                error: function () {
                    location.reload();
                }

            });

尝试通过这种方法调用控制器:)

暂无
暂无

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

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