我有一个像这样的控制器。

public ActionResult Report(List<string> invoiceIds)


我有一个像这样的ajax通话...

function generateAccountsPayableReports() {
    var ms = $("#msInvoicesAPV").data("kendoMultiSelect");
    var invoices = ms.dataItems();
    var invoiceIds = [];

    invoices.forEach(function (invoice) {
        invoiceIds.push(invoice.Id);
    });

    //invoiceIds = JSON.stringify(invoiceIds);
    console.log("InvoiceIds: ", invoiceIds);

    $.ajax({
        type: "GET",
        url: "/APV/Report",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(invoiceIds),
        success: function (result) {
            if (result) {
                console.log("result: ", result);
            }
        },
        failure: function (result) {
            console.error("result: ", result);
        },
        error: function (result) {
            console.error("result: ", result);
        }
    });
}


我已经尝试了所有我能想到的:


数据:{'invoiceIds':JSON.stringify(invoiceIds)}
资料:(invoiceIds)
数据:{'invoiceIds':invoiceIds}
数据:JSON.stringify(invoiceIds)
数据:invoiceIds
数据:JSON.stringify({'invoiceIds':invoiceIds})


当我尝试此操作时,它传递给控制器​​,但仅传递给单个元素。

javascript - 如何将列表从Ajax传递到 Controller-LMLPHP

javascript - 如何将列表从Ajax传递到 Controller-LMLPHP

似乎没有任何作用...我在做什么错?

顺便说一句,在JavaScript数组

如何正确通过?

最佳答案

您将类型用作“ GET”而不是“ POST”,使用“ POST”并且不进行任何更改,通常它将那样工作
看来它在您的LIST中收到一个字符串

08-04 09:42