我对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();
答案 0 :(得分:0)
您唯一需要考虑的是您的复选框所具有的name
属性的值。您现在正在处理它的方式,您的帖子将会有一个相当随机的chkN
- 命名参数集合,其中N
是一些数字。 modelbinder需要一些类似命名的操作方法参数,以便将发布的值绑定到有用的东西上。对于某些变量(DocumentId
值)而言,这是一个很高的订单。
最好的选择是将复选框设置为集合,这意味着为其指定名称chk[0]
,chk[1]
等。然后在您的操作中,您可以接受{{ {1}},它将包含已发布的所有值的列表。