我可以在循环中使用Html.CheckBoxFor吗?如果是这样的话?
这是我想要做的一个例子。 (这是使用spark,但问题仍然适用于剃须刀或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
表示视图模型而不是循环中的当前项。
答案 0 :(得分:3)
你可以试试这个:
<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>
答案 1 :(得分:0)
我不喜欢这样做,但如果你必须使用Html.XXXFor
它会起作用1:在模型上创建一个名为CurrentAnswer的属性(类型为Answer)
2:在循环设置中回答CurrentAnswer
3:然后调用Html.XXXFor(a =&gt; a.CurrentAnswer)