2013-06-03 35 views
2

当教师提出问题时,他必须提供3个答案,其中一个是正确的,另外两个是错误的。如何使用Razor单选按钮正确实现MVC3?

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

而且每个答案都有它的身体和表示布尔字段,如果它是正确的:

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个单选按钮时,它们都保持活动状态。应该一次只有一个是活动的。 我该如何强制他们一次只保留一个活动,以及如何检索其值?

+0

这气味像功课 – Eonasdan

+0

这是我最后的毕业设计这将是比较合适的。 @Eonasdan –

回答

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

@ caderll0。它是布尔字段,只允许0和1(真或假)。 –

+0

我刚刚明白了。另一个人给我提了一些解释。十分感谢。 –

相关问题