我的视图中有一个列表框选择,我需要按住ctrl键选择多个项目,我使用以下代码:
@Html.ListBoxFor(
m => m.SelectedSkills ,
new MultiSelectList( listItems, "Id", "Name", @Model.SelectedSkills ),
new { Multiple = "multiple" }
)
我想在每个列表项的前面放置一个复选框,用户可以选中/取消选中复选框以选择/取消选择一个项目,当它发布表单时,只应在控制器操作中传递选中的复选框值,怎么能我实现了这个......
答案 0 :(得分:1)
你可以这样做:
第一种方法:创建html标记
<ul>
@foreach (var g in Model.AllSkills)
{
<li>
<input type="checkbox"
name="SelectedSkills"
value="@g.ID" id="@g.ID"
@{if (condition)
{><text> checked='checked' </text> } } />
<label for="@g.ID">@g.Name</label>
</li>
}
</ul>
现在您可以发布表单并查看所选值存储在model.SelectedSkills字段中。
第二种方法:使用MvcCheckBoxList
<div class="editor-field">
@Html.CheckBoxListFor(model=>model.SelectedSkills,
model=>model.AllSkills,
x=>x.ID,
x=>x.Names)
</div>
有关详细信息,请参阅this。