【问题标题】:How to correctly implement MVC3 with Razor radio buttons?如何使用 Razor 单选按钮正确实现 MVC3?
【发布时间】:2013-05-29 17:24:27
【问题描述】:

当老师提出一个问题时,他必须提供 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 个单选按钮时,它们都保持活动状态。一次应该只有一个处于活动状态。 我怎样才能强制他们一次只保持一个活动,以及如何检索它的值???

【问题讨论】:

  • 这闻起来像家庭作业
  • 这是我最后的毕业设计。 @Eonasdan

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


【解决方案1】:

第二个参数是表单发布时要登顶的值。应该更合适

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

【讨论】:

  • @caderll0.它是bool字段,只允许0和1(真或假)。
  • 我明白了。另一个人向我建议了同样的技巧并做了一些解释。非常感谢你。
猜你喜欢
  • 1970-01-01
  • 2012-10-18
  • 2017-06-23
  • 1970-01-01
  • 2012-07-12
  • 2016-07-30
  • 2013-02-10
  • 2017-08-20
  • 2019-07-02
相关资源
最近更新 更多