由于我是MVC框架的新手,我花了几个小时在View文件中生成一个复选框列表。最后,我能搞清楚。这是我的代码:
@foreach (var item in Model.GetRoleNames)
{
@Html.CheckBox("chk_" + item.Value, new { value = item.Value })@item.Text<br />
}
但是,我需要检测它们中的哪一个被选中,以及是否未选中所有cckckbox,然后阻止某些操作。
问题:当我在控制器操作中时,如何获取已检查的项目?
答案 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#
删除空格