我认为这种形式:
@foreach (var partner in ((List<string>)ViewBag.Email))
{
<div class="checkbox">
<label> @Html.CheckBox("partners", true, new { @class = "myCheckbox" }) @ViewBag.FirstName[item] @ViewBag.Lastname[item] ( @partner.ToString() )
</label>
</div>
item += 1;
}
这些复选框动态显示(foreach)。所有复选框都具有相同的名称“partners”,默认情况下都会检查所有复选框。那我怎么检查,检查哪些复选框?
我的控制器方法,我从表单处理这些数据:
public ActionResult Create(List<string> partners){
...
}
如何在视图中更改我的表单,我知道识别出不同的复选框?
答案 0 :(得分:0)
如果我是你,我会使用Patner对象列表而不是字符串列表,这些字符串将包含一些ID,Partner和Selected属性。然后使用它:
@Html.CheckBoxFor(m => m.Selected)...
对于所有选中的复选框项,您的视图会将属性Selected设置为true。
答案 1 :(得分:0)
@Html.CheckBox
会创建一个额外的隐藏字段,您可以在这种情况下使用普通html
,如下所示。只会检查已选中的复选框值。
<input type="checkbox" checked name="partners" class="myCheckbox" value="YourValueHere"/>
希望这会对你有所帮助。