@формат HTML.Опция RadioButtonFor get selected с одним разрешенным выбором

Я хотел бы иметь две группы радиокнопок в форме и получить, какой элемент был проверен избегая возможности выбрать несколько радиокнопок, но как только я добавляю имя к моему вводу радиокнопок, то я больше не могу видеть в моей модели, какой элемент проверен.

Вот мой взгляд:

 ...
@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}) @ch.choiceTitle
                         @Html.HiddenFor(m => m.questions[i].choices[j].isChecked) 
                      </li>
                }
          </ul>
      }

<input type="submit" value="Valider" />

}

А вот моя структура:

        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; }
    }

Но проблема в том, что я могу выбрать несколько радиобуттонов в одной группе, поэтому я добавил этот код в RadioButtonFor после идентификатора:

@Name = «group» + i

Но тогда я не мог получить isChecked в моей модели.
Что я здесь делаю не так? Как решить эту проблему?
Спасибо!
Лучшие

1 ответ

  1. Для решения проблемы я добавил поле selectedChoiceId в мой класс QuizQuestion и использовал RadioButtonFor следующим образом:

    @формат HTML.RadioButtonFor(m => m.вопросы[i].selectedChoiceId, ch.choiceId)

    1-е поле RadioButtonFor служит для группировки переключателей, поэтому оно должно быть одинаковым для всех переключателей для одного вопроса