在MVC3中获取已检查复选框的ID

时间:2012-03-28 12:01:51

标签: asp.net-mvc asp.net-mvc-3 razor formcollection

这是我的观点:

@foreach(var action in Model.Category.Actions) {
<div class="action" style="margin-right: 30px;">
    <input type="checkbox" class="chk-act" id="@action.Id" name="actionChk" />
    <text>@action.Text</text>
</div>
  }

html Dom就像以下一样:

<input type="checkbox" class="chk-act" id="17" name="actionChk">
<input type="checkbox" class="chk-act" id="18" name="actionChk">
<input type="checkbox" class="chk-act" id="19" name="actionChk">

所以我需要检查ID。当我尝试通过表单集合获取值时,它返回了一个on字符串数组,其长度为已选中的复选框:

[HttpPost]
public ActionResult Index(FormCollection collection) {
    var actions = collection.GetValues("actionChk");
return View();
}
你的建议是什么?

1 个答案:

答案 0 :(得分:9)

您应该将值放在value参数

 <input type="checkbox" class="chk-act" id="17" value="17" name="actionChk">
 <input type="checkbox" class="chk-act" id="18" value="18" name="actionChk">
 <input type="checkbox" class="chk-act" id="19" value="19" name="actionChk">

然后,从控制器中,您应该有一个名为Ids的{​​{1}}数组