【发布时间】:2013-04-30 00:19:35
【问题描述】:
我正在尝试将List<int> 从我的View 传递给我的Controller。我尝试了多种方法,使用不同的参数。没有运气。
我目前正在尝试将{[4,5,13]} 传递给带有参数List<int> ids 的方法。
发送数字列表或数组的正确格式是什么?
【问题讨论】:
标签: c# javascript
我正在尝试将List<int> 从我的View 传递给我的Controller。我尝试了多种方法,使用不同的参数。没有运气。
我目前正在尝试将{[4,5,13]} 传递给带有参数List<int> ids 的方法。
发送数字列表或数组的正确格式是什么?
【问题讨论】:
标签: c# javascript
我相信你必须传递这样的东西:
{"ids":[4,5,13]}
如果您使用的是 AJAX,那么我记得我必须将 traditional 设置为 true (See the jquery ajax documentation) 这样才能正确解析参数。
【讨论】:
traditional 选项,您实际上可以发送 javascript 数组对象。
AJAX 方式:
来自AJAX 的 jquery 文档:
数据
类型: PlainObject 或 String
要发送到服务器的数据。这是 转换为查询字符串,如果还不是字符串。它附加到 GET 请求的 url。请参阅 processData 选项以防止这种情况 自动处理。对象必须是键/值对。如果值是 数组,jQuery基于相同的键序列化多个值 传统设置的值(如下所述)。传统的
类型: Boolean
如果您希望使用 param serialization的传统风格。
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, /* I M P O R T A N T */
url: /* url to controller goes here */,
data: { userId: usrId, allowedRoles: roleList },
success: function(returndata) {
alert("Done");
},
error: function(returndata) {
alert("Error:\n" + returndata.responseText);
}
});
【讨论】: