我正在尝试通过JSON将数组发送到MVC控制器操作,但遇到了困难。
以下是我的代码和尝试过的方法...
以下是我的代码和尝试过的方法...
//Get checked records
var $checkedRecords = $(':checked'); //e.g. 3 rows selected = [input 4, input 5, input 6]
//Have tried following:
sendingVar: $checkedRecords.serializeArray(); // gives array of 0's
sendingVar: JSON.stringify($checkedRecords); // gives "{\"length\":1,\"prevObject\":{\"0\":{\"jQuery1313717591466\":1,\"jQuery1313717591653\":13},\"context\":{\"jQuery1313717591466\":1,\"jQuery1313717591653\":13},\"length\":1},\"context\":{\"jQuery1313717591466\":1,\"jQuery1313717591653\":13},\"selector\":\":checked\",\"0\":{}}"...wtf
//Post
$.post(url, { sendingVar: sendingVar }, function(data) {alert(data); });
我该如何做?
编辑:对于那些建议从第一行“原样”发送$checkedRecords
的人 - 那不起作用。我在jquery框架中得到了奇怪的异常:(
uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://.../.../.../jquery-1.4.4.min.js :: <TOP_LEVEL> :: line 141" data: no]
我认为这意味着它正在尝试将null分配给无法接受的内容。
编辑:我使用的是MVC2而不是3
编辑2:在@Monday的回答之后-问题是由于我构建数组的方式导致的,例如[input 4,input 5,input 6]
而不是[4,5,6]
-有什么办法可以只获取数组中的值吗?
编辑3:当这不是重复问题时,请停止投票。你真的看了我的问题或者阅读了链接的问题吗?这是一个不同的问题
@Daveo:
我不想在JSON中构建覆盖自定义属性以发送数组,那太荒谬了因为我们已经在这个问题上讨论过,这是不必要的。