如何使用Razor单选按钮正确实现MVC3?

时间:2013-06-03 14:10:35

标签: c# visual-studio-2010 asp.net-mvc-3 razor radio-button

当教师创建问题时,他必须提供3个答案,其中一个是正确的,另外两个是错误的。

public class AddQuestion
{
    public string QuesBody { get; set; }
    public List<Answer> AnsLst { get; set; }
}

每个答案都有它的主体和一个bool字段,表明它是否是正确的:

public class AddQuestion
{
    public string AnswerBody { get; set; }
    public bool Correct { get; set; }
}    

我尝试使用单选按钮来指示哪个答案是正确答案。

@Html.TextAreaFor(c => c.AnsLst[0].AnswerBody)
@Html.RadioButtonFor(c => c.AnsLst[0].Correct, false) 
<br />
@Html.TextAreaFor(c => c.AnsLst[1].AnswerBody)
@Html.RadioButtonFor(c => c.AnsLst[1].Correct, false)
<br />
@Html.TextAreaFor(c => c.AnsLst[2].AnswerBody)
@Html.RadioButtonFor(c => c.AnsLst[2].Correct, false)

问题是:当我选择2个,甚至3个单选按钮时,它们都保持活动状态。它应该只有一个是活跃的。 如何强制它们一次只保留一个活动状态,以及如何检索其值???

1 个答案:

答案 0 :(得分:3)

第二个参数是发布表单时的峰值。

更合适
@Html.TextAreaFor(c => c.AnsLst[0])
@Html.RadioButtonFor(c => c.SelectedAnswer, 0) 
<br />
@Html.TextAreaFor(c => c.AnsLst[1])
@Html.RadioButtonFor(c => c.SelectedAnswer, 1)
<br />
@Html.TextAreaFor(c => c.AnsLst[2])
@Html.RadioButtonFor(c => c.SelectedAnswer, 2)

您的模型看起来像这样

public class AddQuestion
{
    public string QuesBody { get; set; }
    public List<string> AnsLst { get; set; }
    public int SelectedAnswer { get; set; }
}