jQuery Ajax POSTing数组到ASP.NET MVC控制器

Agi*_*ble 57 asp.net-mvc jquery http-post

我在这里遗漏了一些东西.我有这个jQuery JavaScript:

$.ajax({
    type: "POST",
    url: "/update-note-order",
    dataType: "json",
    data: {
        orderedIds: orderedIds,
        unixTimeMs: new Date().getTime()
    }
});
Run Code Online (Sandbox Code Playgroud)

orderedIdsJavaScript编号数组在哪里(例如var orderedIds = [1, 2]).

处理Controller方法是:

[HttpPost]
public void UpdateNoteOrder(long[] orderedIds, long unixTimeMs)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我放入Debugger.Break()UpdateNoteOrder(),orderedIdsnull在Watch窗口中.(unixTimeMs但是,有一个数值.)

如何通过数字阵列$.ajax(),从而orderedIdslong[]在我的控制?

Dar*_*rov 124

只需将traditional参数设置为true:

$.ajax({
    type: "POST",
    url: "/update-note-order",
    dataType: "json",
    traditional: true,
    data: {
        orderedIds: orderedIds,
        unixTimeMs: new Date().getTime()
    }
});
Run Code Online (Sandbox Code Playgroud)

由于jquery 1.4存在此参数,因为将对象序列化为查询参数的机制已更改.