Sto provando, e faccio fatica, a inviare un array tramite JSON a un'azione del controller MVC.Invia array al controller MVC tramite JSON?
Ecco quello che ho e quello che ho provato ...
//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); });
Come posso fare?
modifica: a quelli che suggeriscono di inviare $checkedRecords
"come è" dalla riga superiore - che non funziona. Ottengo una strana eccezione in qualche parte del framework 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]
che credo significa che sta tentando di assegnare null a qualcosa che non può
Edit:. Sto utilizzando MVC2 non 3
Edit2:? Dopo la @ di Lunedi risposta- il problema è dovuto al modo in cui ho costruito la matrice come[input 4, input 5, input 6]
e non [4,5,6]
- tutte le idee come posso ottenere solo i valori nella matrice invece
Edit3: smetti di votare su duplicato quando non lo è. Hai effettivamente letto il mio problema o letto i problemi collegati? questo è un problema diverso
@Daveo:
I don't want to build in an overriding custom attribute just to send an array from JSON, that is rediculous come abbiamo già trattato in questa domanda: non è necessario.
possibile duplicato di: http://stackoverflow.com/questions/320291/how-to-post-an-array- di-complex-objects-con-json-jquery-to-asp-net-mvc-controller e http://stackoverflow.com/questions/4789481/post-an-array-of-objects-via-json-to- asp-net-mvc3 – Daveo
Qual è il tuo risultato desiderato? La tua matrice è di oggetti jQuery, la versione stringify mi sembra giusta. Cosa ti aspetti che assomigli? – BZink
è solo un array contenente gli ID di stringa degli elementi selezionati. Voglio checkedRecords per contenere una matrice di tutti gli ID degli elementi selezionati. Il 'valore' dell'ingresso selezionato contiene il valore ID che mi serve. – baron