我想在一个表单中有两组单选按钮,并检查哪个项目已经检查,避免了选择几个单选按钮的可能性,但只要我在单选按钮输入中添加一个名称,我就看不到了再模型检查哪个项目。
以下是我的观点:
...
@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。 我在这做错了什么?如何解决这个问题? 谢谢 最好
答案 0 :(得分:0)
为了解决这个问题,我在我的类QuizQuestion中添加了一个字段selectedChoiceId,并使用了RadioButtonFor,如下所示:
@ Html.RadioButtonFor(m =&gt; m.questions [i] .selectedChoiceId,ch.choiceId)
RadioButtonFor的第一个字段用于将单选按钮组合在一起,因此对于单个问题的所有单选按钮应该相同