Sto creando una piccola app per insegnarmi ASP.NET MVC e JQuery e una delle pagine è un elenco di elementi in cui alcuni possono essere selezionati. Quindi vorrei premere un pulsante e inviare un Elenco (o qualcosa di equivalente) al mio controller contenente gli ID degli elementi che sono stati selezionati, usando la funzione Post di JQuery.
Sono riuscito a ottenere un array con gli ID degli elementi che sono stati selezionati, e ora voglio pubblicarlo. Un modo in cui ho potuto farlo è avere un modulo fittizio nella mia pagina, con un valore nascosto, quindi impostare il valore nascosto con gli elementi selezionati e pubblicare quel modulo; sembra però croccante.
Esiste un modo più pulito per raggiungere questo obiettivo, inviando l'array direttamente al controller? Ho provato alcune cose diverse ma sembra che il controller non sia in grado di mappare i dati che sta ricevendo. Ecco il codice finora:
function generateList(selectedValues) {
var s = {
values: selectedValues //selectedValues is an array of string
};
$.post("/Home/GenerateList", $.toJSON(s), function() { alert("back") }, "json");
}
E poi il mio controller appare così
public ActionResult GenerateList(List<string> values)
{
//do something
}
Tutto quello che sono riuscito a ottenere è un "null" nel parametro controller ...
Qualche consiglio?
Request["values[]"]