jQuery的阿贾克斯张贴阵列ASP.NET MVC控制器 [英] jQuery Ajax POSTing array to ASP.NET MVC Controller
问题描述
我在这里失去了一些东西。我有这样的jQuery JavaScript的:
I'm missing something here. I've got this jQuery JavaScript:
$.ajax({
type: "POST",
url: "/update-note-order",
dataType: "json",
data: {
orderedIds: orderedIds,
unixTimeMs: new Date().getTime()
}
});
其中, orderedIds
是一个JavaScript数字阵列(如 VAR orderedIds = [1,2]
)。
Where orderedIds
is a JavaScript number array (e.g. var orderedIds = [1, 2]
).
经办控制器
方法是:
[HttpPost]
public void UpdateNoteOrder(long[] orderedIds, long unixTimeMs)
{
...
}
当我把 Debugger.Break()
在 UpdateNoteOrder()
, orderedIds
是空
在监视窗口中。 ( unixTimeMs
,但是,有一个数值。)
When I put a Debugger.Break()
in UpdateNoteOrder()
, orderedIds
is null
in the Watch window. (unixTimeMs
, however, has a numeric value.)
如何通过 $数值列。阿贾克斯()
,使得 orderedIds
是长[]
在我的控制器?
How do I pass the number array through $.ajax()
such that orderedIds
is a long[]
in my controller?
推荐答案
只需设置 传统的
参数真正
:
$.ajax({
type: "POST",
url: "/update-note-order",
dataType: "json",
traditional: true,
data: {
orderedIds: orderedIds,
unixTimeMs: new Date().getTime()
}
});
由于jQuery的1.4这个参数存在,因为序列化对象到查询参数的机制已经改变了。
Since jquery 1.4 this parameter exists because the mechanism to serialize objects into query parameters has changed.
这篇关于jQuery的阿贾克斯张贴阵列ASP.NET MVC控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!