循环使用CheckBoxFor

问题描述

| 我可以在循环中使用Html.CheckBoxFor吗?如果可以,怎么办? 这是我正在尝试做的一个例子。 (这使用的是spark,但问题仍然适用于razor或aspx)
<ul class=\"VoteOptions\">
    <for each=\"var answer in poll.Answers\">
        <li>!{Html.LabelFor(a =>a.Answer)}</li>
        <li>!{Html.CheckBoxFor(a =>a.Key)}</li>
    </for>
 </ul>
这显然是行不通的,因为
a
表示视图模型而不是循环中的当前项。     

解决方法

您可以尝试以下方法:
<for each=\"var answer in poll.Answers\">
    <li>!{Html.LabelFor(a => answer.Answer)}</li>
    <li>!{Html.CheckBoxFor(a => answe.Key)}</li>
</for>
但是显然更好的解决方案是永远不要编写任何循环,而要使用编辑器模板,因为在这种情况下,您的代码将变为:
<ul class=\"voteOptions\">
    !{Html.EditorFor(x => x.Answers)}
</ul>
    ,我不喜欢这样,但是如果您必须使用Html.XXXFor 1:在模型上创建一个名为CurrentAnswer的属性(键入Answer) 2:在循环中设置CurrentAnswer的答案 3:然后调用Html.XXXFor(a => a.CurrentAnswer)     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...