我有一个班级
public class CustomBenefitCommittee
{
public int PlanOptionId { get; set; }
public bool IsChecked { get; set; }
public string PlanOptionName { get; set; }
}
我在razer视图中把这个类作为模型的列表类型
@model List<MIHR.Business.CustomClasses.CustomBenefitCommittee>
@{
int Counter = 0;
}
<table class="table table-bordered" id="tblPlanLst">
<thead>
<tr>
<th>
select
</th>
<th>
Benefit Option
</th>
</tr>
</thead>
<tbody>
@foreach (var Enrol in Model)
{
<tr>
<td> <input type="checkbox" name="customBenefitCommittee[@Counter].IsChecked" class="clsCheck" /></td>
<td>
@Enrol.PlanOptionName
</td>
</tr>
Counter++;
}
</tbody>
</table>
<input type="submit" id="btnSubmitSave" value="Save" name="buttonType" class="btn btn btn-primary">
现在当我将此表单发布到控制器并选中复选框时,我在此复选框IsChecked属性中始终为false。 任何人都可以帮助我。
答案 0 :(得分:1)
您也可以这样使用:
@{
var IsChecked = "";
if (Enrol.IsChecked == true)
{
IsChecked = "checked='checked'";
}
}
<input type="checkbox" name="customBenefitCommittee[@Counter].IsChecked" @IsChecked value="true" />
如果选中此复选框,则会true
,如果未选中复选框,则会null
public class CustomBenefitCommittee
{
public int PlanOptionId { get; set; }
public bool? IsChecked { get; set; }
public string PlanOptionName { get; set; }
}
或者你也可以这样使用:
@Html.CheckBox("customBenefitCommittee[" + Counter + "].IsChecked", Enrol.IsChecked ?? false, new { @class = "clsCheck" })
或者你也可以这样使用:
@Html.CheckBoxFor(model => model[@Counter].IsChecked)
答案 1 :(得分:1)
RAJNIK PATEL的回答解决了我的问题。
我有一个视图模型,该视图模型在选项卡式页面上包含其他视图模型。每个选项卡都是不同的视图模型。提交后,所有标签都将保存。
要获得一组动态生成的复选框,我必须使名称指示我使用的viewmodel中的正确视图模型。
public class AViewModel{
public AnotherViewModel {get;set;}
}
因此,由类型的循环生成的我的复选框如下所示。 checkboxid是我的名字。
@Html.CheckBox("ModifyRolePermViewModel." + checkboxid)