Je crée une petite application pour m'enseigner ASP.NET MVC et JQuery, et l'une des pages est une liste d'éléments dans lesquels certains peuvent être sélectionnés. Ensuite, je voudrais appuyer sur un bouton et envoyer une liste (ou quelque chose d'équivalent) à mon contrôleur contenant les identifiants des éléments qui ont été sélectionnés, en utilisant la fonction Post de JQuery.
J'ai réussi à obtenir un tableau avec les identifiants des éléments sélectionnés, et maintenant je veux le publier. Une façon de le faire est d'avoir un formulaire factice dans ma page, avec une valeur masquée, puis de définir la valeur masquée avec les éléments sélectionnés et de publier ce formulaire; cela semble cruel, cependant.
Existe-t-il un moyen plus propre d'y parvenir, en envoyant le tableau directement au contrôleur? J'ai essayé différentes choses, mais il semble que le contrôleur ne puisse pas mapper les données qu'il reçoit. Voici le code jusqu'à présent:
function generateList(selectedValues) {
var s = {
values: selectedValues //selectedValues is an array of string
};
$.post("/Home/GenerateList", $.toJSON(s), function() { alert("back") }, "json");
}
Et puis ma manette ressemble à ça
public ActionResult GenerateList(List<string> values)
{
//do something
}
Tout ce que j'ai réussi à obtenir est un "null" dans le paramètre du contrôleur ...
Des conseils?
Request["values[]"]