0

由于我是 MVC 框架的新手,所以我花了几个小时在视图文件中生成一个复选框列表。最后,我可以很好地解决它。这是我的代码:

 @foreach (var item in Model.GetRoleNames)
        {
            @Html.CheckBox("chk_" + item.Value, new { value = item.Value })@item.Text<br />
        }

但是,我需要检测它们中的哪一个被选中,如果所有的复选框都未选中,那么阻止一些操作。

问题:当我在控制器操作中时,如何获取选中的项目?

4

1 回答 1

2

正如其他人所说,您应该使用布尔值作为 CheckBox 的第二个参数来指示检查状态。一些字符串操作应该可以帮助您获取所选复选框的 ID。

首先让我们改变复选框助手的使用方式

<div id='myCheckboxDiv'>
 @foreach (var item in Model.GetRoleNames)
 {
   @Html.CheckBox("chk_" + item.Value, false)@item.Text<br />
 }
</div>

如您所见,我已将第二个参数设置为 false 并将混合包装在 div 中

而且,当您想要获取与所选复选框关联的“值”时

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(4);

}).get();

我假设item.Value是一个数字。如果不是,请使用 C# 删除空格

于 2013-06-14T05:43:29.320 回答