我在这里想念东西。我有这个jQuery JavaScript:
$.ajax({
type: "POST",
url: "/update-note-order",
dataType: "json",
data: {
orderedIds: orderedIds,
unixTimeMs: new Date().getTime()
}
});
其中
orderedIds
是JavaScript数字数组(例如var orderedIds = [1, 2]
)。处理
Controller
方法是:[HttpPost]
public void UpdateNoteOrder(long[] orderedIds, long unixTimeMs)
{
...
}
当我在
Debugger.Break()
中放入UpdateNoteOrder()
时,在Watch窗口中orderedIds
是null
。 (但是unixTimeMs
具有数字值。)如何在
$.ajax()
中传递数字数组,以使orderedIds
在我的 Controller 中是long[]
? 最佳答案
只需将 traditional
参数设置为true
:
$.ajax({
type: "POST",
url: "/update-note-order",
dataType: "json",
traditional: true,
data: {
orderedIds: orderedIds,
unixTimeMs: new Date().getTime()
}
});
从jquery 1.4开始,此参数存在是因为将对象序列化为查询参数的机制已更改。