我开始了我的第一个ASP.NET MVC项目,所以我有一个简单的问题。 我有以下代码:ASP.NET MVC 5组单选按钮
foreach(var question in Model.GeneralQuestions)
{
<div class = "well">
<h3>
<strong>@question.QuestionString</strong>
</h3>
@foreach (var answer in question.PossibleAnswers)
{
@Html.RadioButtonFor(model => question.QuestionString, answer.Answer)
@Html.Label(answer.Answer)
<br />
}
</div>
}
在Model.GeneralQuestions所有问题都是独一无二的,所以单选按钮应该由name属性被分成组(每题一组单选按钮)。但是这个代码只产生一个组,所以当我第一个回答第二个问题时就会取消选择。 我需要改变什么?
编辑
我的模型看起来像:
public class StudentViewModel
{
public Student Student { get; set; }
public List<Question> GeneralQuestions { get; set; }
public List<SubjectQuestions> SubjectQuestions { get; set; }
}
public class Student
{
public int StudentID { get; set; }
public string Index { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public virtual ICollection<Subject> Subjects { get; set; }
}
public class Question
{
public int QuestionID { get; set; }
public string QuestionString { get; set; }
public bool IsAssociatedWithSubject { get; set; }
public virtual ICollection<PossibleAnswer> PossibleAnswers { get; set; }
public virtual ICollection<Results> Results { get; set; }
}
public class SubjectQuestions
{
public Subject Subject { get; set; }
public List<Question> Questions { get; set; }
}
public class Results
{
public int ResultsID { get; set; }
public int QuestionID { get; set; }
public int? SubjectID { get; set; }
public int PossibleAnswerID { get; set; }
public virtual Question Question { get; set; }
public virtual PossibleAnswer PossibleAnswer { get; set; }
public virtual Subject Subject { get; set; }
}
在StudentViewModel的一个实例我救一个学生,所有的问题,他应该回答(一般和相关学科他是学)和通它来查看。鉴于我将所有问题都以单一形式提出,并且都是无线电广播。所以,任何人都可以帮助我分组单选按钮并正确回复此表单吗?
只是一个快速反应,但你见过这篇文章吗? http://stackoverflow.com/a/22178728/1765853 – macoms01 2015-01-20 21:22:27
只要'QuestionString'是唯一的,这应该是为每个问题创建一个组,虽然绑定到'QuestionString'似乎是固定的 - 你不应该绑定到类似的东西'SelectedAnswer'?你可以显示一些这是生成的HTML – 2015-01-20 21:27:39
你的外循环也应该是一个'for'循环,这样你的控件属性可以通过索引器命名。 – 2015-01-20 21:30:50