我的代码就像这样
<div class="form-group" style="padding-top: 30px;">
@Html.CheckBoxFor(model => model.IsVatPaidByInsurer)
</div>
内部模型类
public bool IsVatPaidByInsurer { get; set; }
内部控制器
public ActionResult Create([Bind(Include = "PayerID,Name,CreatedDate,PayerTypeSelected,ReferingInstitute,ApplicationUserId" +
"IsVatPaidByInsurer,PatientContribution")] Payer payer)
我希望这行代码在前端生成一个复选框,但它呈现的方式是这样的(值不是真的,我只是选中了复选框)
<div class="form-group" style="padding-top: 30px;">
<input data-val="true" data-val-required="The IsVatPaidByInsurer field is required." id="IsVatPaidByInsurer" name="IsVatPaidByInsurer" type="checkbox" value="true">
<input name="IsVatPaidByInsurer" type="hidden" value="false">
</div>
正如您所看到的,生成了两个具有相同名称的输入(IsVatPaidByInsurer)。 第二个值总是假的。因此,当我发表我的表格后,我无法获得复选框的真正价值。它会在那里解释为假。任何人都可以打电话给我这是关于什么的?以及克服这个问题的方法吗?
答案 0 :(得分:1)
2个输入是正确的(没有隐藏输入,您可能会得到不正确的值)。如果选中该复选框,则会回发true, false
,DefaultModelBinder
会将模型值设置为true
(忽略第二个值)。如果取消选中该复选框,则会回发false
(未选中复选框不会回发),因此模型属性设置为false