javascript - 如何将列表从ajax传递给 Controller

标签 javascript c# jquery asp.net ajax

我有一个这样的 Controller ..

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})

当我尝试这样做时,它传入了 Controller ,但仅在单个元素上..

{'invoiceIds': JSON.stringify(invoiceIds)}

It was passed on one element only

似乎没有任何效果...我做错了什么?

顺便说一句,javascript 中的数组是 guid

如何正确传递它?

最佳答案

你使用类型作为“GET”而不是“POST”,使用“POST”并且不要改变任何东西,通常它会像那样工作 它似乎在您的列表中收到一个字符串

关于javascript - 如何将列表从ajax传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58929897/

相关文章:

c# - 使用多线程在 SQLite 数据库中插入记录的性能问题

javascript - 将可排序的 jQuery 顺序发送到 Laravel Controller

javascript - 检查图像是否存在且没有错误消息

c# - 我可以动态使用模板吗?

javascript - 如何根据对象(而不是数组)的属性执行合并排序?

javascript - 如何在更新后刷新内容.Net C# (EXT.net) webforms 应用程序

php - 如何将值传递给模态?

javascript - 如何在jquery中使用on转换悬停功能

javascript - 客户关系管理 2011 JavaScript 集成开发环境

javascript - 如何在 ngModel 中转换为毫秒?