处理复选框并获取值

时间:2014-11-03 21:38:52

标签: html asp.net-mvc

我对MVC很新,我很难理解如何将值(基本上是ID)转换为我正在生成的复选框。这是我的复选框:

<div id='myCheckboxDiv'>
  <input type="checkbox" onclick="checkAll(this)">Check All
  @foreach (var form in @Model.DetailObject.DoaFormGroupDocuments)
  {
    <br>
    var checkBoxId = "chk" + form.DocumentId;
    @Html.CheckBox(checkBoxId, new { value = form.DocumentId, @checked = true });
    @form.DocumentName;
  }
</div>

基本上我想要做的是获取选中复选框的ID,并在单击页面底部的保存按钮后将其保存到列表中。

我遇到过这样的事情来处理所有事情,但我不太确定如何真正使用它......

var values = $('#myCheckboxDiv').find('input:checkbox:checked').map(function () {
  // get the name ..
  var nameOfSelectedItem = this.attr('name');
  // skip the ‘chk’ part and give me the rest
  return nameOfSelectedItem.substr(3);
}).get();

1 个答案:

答案 0 :(得分:0)

您唯一需要考虑的是您的复选框所具有的name属性的值。您现在正在处理它的方式,您的帖子将会有一个相当随机的chkN - 命名参数集合,其中N是一些数字。 modelbinder需要一些类似命名的操作方法参数,以便将发布的值绑定到有用的东西上。对于某些变量(DocumentId值)而言,这是一个很高的订单。

最好的选择是将复选框设置为集合,这意味着为其指定名称chk[0]chk[1]等。然后在您的操作中,您可以接受{{ {1}},它将包含已发布的所有值的列表。