将数字数组从 JS 发送到 asp.net MVC 操作

Send array of numbers from JS to asp.net MVC action

我想将数字数组发送到我的后退操作,但无论我尝试什么,我都得到 NULL 或错误。这是我当前的代码。

JS

$.ajax({
        traditional: true,
        dataType: "json",
        contentType: 'application/json; charset=utf-8',
        type: "POST",
        data: JSON.stringify(groupIds),
        url: '/Admin/ReadMessages',
        error: function (error) {
            swal.fire({
                title: "Something went wrong. Please try again later.",
                type: "error"
            });
        }
    });

MVC

public ActionResult ReadMessages(List<long> groupIds)
{
     return new HttpStatusCodeResult(HttpStatusCode.OK);
}

有什么想法吗?

试试这个

var arr= new Array();
arr.push(1);
arr.push(2); 

$.ajax({  
    type: "POST",
    url: urlToPost,
    data: JSON.stringify(arr),
    contentType: "application/json"
   });
$.ajax({
    traditional: true,
    dataType: "json",
    contentType: 'application/json; charset=utf-8',
    type: "POST",
    data: { 'groupIds': groupIds} ,
    url: '/Admin/ReadMessages',
    error: function (error) {
        swal.fire({
            title: "Something went wrong. Please try again later.",
            type: "error"
        });
    }
});

在控制器中:

public ActionResult ReadMessages(IEnumerable<long> groupIds))
{
     return new HttpStatusCodeResult(HttpStatusCode.OK);
}

正如@Amin 所说,只是为了其他人清除,我意识到,错误是在发送 NON 数组对象时,我正在使用 map 函数并且它返回了一些 jquery 数组,但是当我实例化 new Array 并发送,效果很好。

$.ajax({
    traditional: true,
    dataType: "json",
    contentType: 'application/json; charset=utf-8',
    type: "POST",
    data:{groupIds:groupIds},
    url:'@Url.Action("ReadMessages", "Admin")',
    error: function (error) {
        swal.fire({
            title: "Something went wrong. Please try again later.",
            type: "error"
        });
    }
});

控制器:

[HttpPost]
public ActionResult ReadMessages(IEnumerable<long> groupIds))
{
     return new HttpStatusCodeResult(HttpStatusCode.OK);
}