Bonjour,
Je débute avec MVC et Razor et j'ai des soucis lorsque j'essaye de créer un quiz qui contient plusieurs questions, chacune pouvant permettre une seule (radio bouton) ou plusieurs (checkboxes) selections.
Voilà ma structure:
et ici ma vue:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 public class QuizViewModel { public string quizTitle { get; set; } public string quizListDisplay { get; set; } public List<QuizQuestion> questions { get; set; } public Guid owner { get; set; } } public class QuizQuestion { public int questionId { get; set; } public int order { get; set; } public string questionTitle { get; set; } public List<QuizChoice> choices { get; set; } public bool isSingleResponseQuestion { get; set; } } public class QuizChoice { public int choiceId { get; set; } public string choiceTitle { get; set; } public int index { get; set; } public bool isCorrectAnswer { get; set; } public bool isChecked { get; set; } public string feedback { get; set; } public int selectedAnswer { get; set; } }
J'arrivais à récupérer si un "choice" était sélectionné ou pas (isChecked) mais j'ai réalisé que je pouvais sélectionner plusieurs radio bouton ce que je ne veux pas; j'ai donc ajouté un Name pour regrouper les choix d'une meme question
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 ... @using (Html.BeginForm("Validate", "Quiz")) { @for (int i = 0; i < Model.questions.Count(); i++) { <ul> @{ int j = 0; } @foreach (var ch in Model.questions[i].choices) { <li> @Html.RadioButtonFor(m => m.questions[i].choices[j].isChecked, true, new { id = ch.choiceId, @Name = "group" + i}) @ch.choiceTitle @Html.HiddenFor(m => m.questions[i].choices[j].isChecked) </li> } </ul> } <input type="submit" value="Valider" /> }
"@Name = "group" + i " mais dès que j'ajoute ce code, je ne récupère plus les isChecked à vrai. Pourquoi le fait d'ajouter un Name m'empêche de récupérer les valeurs sélectionnées? Comment puis-je contourner le problème?
Merci.
Partager