如何检测是否使用MVC3 Razor选中了复选框

时间:2013-06-07 16:18:31

标签: c# asp.net-mvc-3 checklistbox

由于我是MVC框架的新手,我花了几个小时在View文件中生成一个复选框列表。最后,我能搞清楚。这是我的代码:

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

但是,我需要检测它们中的哪一个被选中,以及是否未选中所有cckckbox,然后阻止某些操作。

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

1 个答案:

答案 0 :(得分: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#

删除空格