jQuery Ajax将数组发送到ASP.NET MVC控制器
我在这里错过了一些东西。 我有这个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在我的控制器中orderedIds是一个long[] ? 
 只需将traditional参数设置为true : 
 $.ajax({ type: "POST", url: "/update-note-order", dataType: "json", traditional: true, data: { orderedIds: orderedIds, unixTimeMs: new Date().getTime() } }); 
由于jquery 1.4存在此参数,因为序列化对象到查询参数的机制已经改变。
你需要把orderedId变成一个参数数组,否则控制器将不会看到它
 $.param({ orderedIds: orderedIds }); 
在你的代码中:
 $.ajax({ type: "POST", url: "/update-note-order", dataType: "json", data: { orderedIds: $.param({ orderedIds: orderedIds }), unixTimeMs: new Date().getTime() } });