J'ai essayé de suivre this mais le modelbinder par défaut a laissé ma matrice nulle côté serveur.Utilisation de tableaux de radiobutton HTML dans ASP.NET MVC
HTML:
Question 1:
<input name="list[0]" type="radio" value="1000" />No
<input name="list[0]" type="radio" value="1001" />Yes
Question 2:
<input name="list[1]" type="radio" value="1002" />No
...
Action de contrôleur:
public ActionResult Anamnesis(string[] list)
{
Si je choisis la deuxième "Non" (liste [0] est manquante), le DefaultModelBinder est impossible de le transformer en un tableau.
Merci d'avance!
Mise à jour # 1
Reformaté basé sur le commentaire, merci!
Mise à jour # 2
Juste un tought: créé une entrée cachée après tous les élément de la liste, et ainsi il fonctionne. Mais c'est moche, sans aucun doute.
Question 1:
<input name="list[0]" type="radio" value="1000" />No
<input name="list[0]" type="radio" value="1001" />Yes
<input type="hidden" name="list[0]"/>
Question 2:
<input name="list[1]" type="radio" value="1002" />No
<input type="hidden" name="list[1]"/>
...
Commandez-est très importante: la valeur cachée ne présente que lorsque la radio est désactivée. L'idée vient des assistants ASP.NET MVC. (Btw je ne peux pas utiliser Html.RadioButton pour archiver ce comportement.)
Les tableaux sont basés sur zéro en C#. Serait un début. –
True! Fonctionne très bien si je choisis le premier élément - mais si je choisis une autre option (liste [2]) cela échouera. Il semble que le classeur par défaut nécessite un tableau à base zéro. Mais ce n'est pas possible avec les boutons radio ... Puis-je passer à jQuery pour créer des requêtes. – boj
S'il s'agit de boutons radio, c'est-à-dire qu'ils s'excluent mutuellement (choisissez l'un ou l'autre), vous devez leur donner le même nom. Sinon, si les noms sont différents, ils sont traités comme des "ensembles" séparés, et il serait possible de les avoir // tous les deux // sélectionnés! (Et aucun moyen de désélectionner.) - Mike – Funka