将List 从javascript传递给控制器

我正在尝试将List从我的View传递给我的Controller 。 我尝试了多种方法,使用不同的参数。 没运气。

我目前正在尝试将{[4,5,13]}传递给参数List ids

发送列表或数组的正确格式是什么?

我相信你必须传递这样的东西:

 {"ids":[4,5,13]} 

如果您正在使用AJAX,那么我记得我必须将traditional设置为true (请参阅jquery ajax文档)这样可以正确解析参数。

AJAX方式:

从AJAX的jquery文档:

数据

键入: PlainObject或String
要发送到服务器的数据。 如果不是字符串,它将转换为查询字符串。 它附加到GET请求的URL。 请参阅processData选项以防止此自动处理。 对象必须是键/值对。 如果value是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值(如下所述)。

传统

类型:布尔值
如果您希望使用传统的param序列化样式,请将此属性设置为true。

 var roleList = new Array(); var usrId = "testuser"; /* one way of adding items to array */ roleList.push(1); roleList.push(5); roleList.push(8); $.ajax({ type: "POST", traditional: true, /* IMPORTANT */ url: /* url to controller goes here */, data: { userId: usrId, allowedRoles: roleList }, success: function(returndata) { alert("Done"); }, error: function(returndata) { alert("Error:\n" + returndata.responseText); } });