@ Html.RadioButtonFor获得选择选项,允许单一选择

时间:2016-12-27 08:36:18

标签: model-view-controller radiobuttonfor

我想在一个表单中有两组单选按钮,并检查哪个项目已经检查,避免了选择几个单选按钮的可能性,但只要我在单选按钮输入中添加一个名称,我就看不到了再模型检查哪个项目。

以下是我的观点:

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

但问题是我可以在同一组中选择几个radiobutton,所以我在id之后将此代码添加到RadioButtonFor:

@Name =&#34; group&#34; +我

但是我无法在我的模型中获得isChecked。 我在这做错了什么?如何解决这个问题? 谢谢 最好

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我在我的类QuizQuestion中添加了一个字段selectedChoiceId,并使用了RadioButtonFor,如下所示:

@ Html.RadioButtonFor(m =&gt; m.questions [i] .selectedChoiceId,ch.choiceId)

RadioButtonFor的第一个字段用于将单选按钮组合在一起,因此对于单个问题的所有单选按钮应该相同