Я изо всех сил пытаюсь отправить массив через 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 :: :: line 141" data: no]
что, я думаю, означает, что он пытается присвоить null чему-то, что не может.
Изменить: я использую MVC2, а не 3
Edit2: После @ Monday's ответ- проблема связана с тем, как я построил массив вроде [вход 4, вход 5, вход 6]
, а не [4,5,6]
- есть идеи, как я могу вместо этого получить значения в массиве?
Edit3: Прекратить голосование за дубликаты, если их нет. Вы действительно читали мою проблему или читали ссылки на проблемы? это другая проблема
@ Давео:
Я не хочу встраивать переопределяющий настраиваемый атрибут только для отправки массива из JSON, это смешно , поскольку мы уже рассмотрели в этом вопросе - в этом нет необходимости.