如何在mvc4 Razor中为Listbox选中复选框

时间:2017-08-21 13:49:21

标签: c# asp.net-mvc asp.net-mvc-4 razor listbox

我的视图中有一个列表框选择,我需要按住ctrl键选择多个项目,我使用以下代码:

    @Html.ListBoxFor(
     m => m.SelectedSkills ,
     new MultiSelectList( listItems, "Id", "Name", @Model.SelectedSkills ),
     new { Multiple = "multiple" }
    )

我想在每个列表项的前面放置一个复选框,用户可以选中/取消选中复选框以选择/取消选择一个项目,当它发布表单时,只应在控制器操作中传递选中的复选框值,怎么能我实现了这个......

1 个答案:

答案 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