我以前的观点包含如下:
<tr>
<th class="editAddLabel">
@Html.LabelFor(model => model.IsShellFish, "Allergic to Shellfish")
</th>
<td class="editAddField">
@Html.CheckBox("IsShellFish")
</td>
</tr>
<tr>
<th class="editAddLabel">
@Html.LabelFor(model => model.IsPeaNut, "Allergic to Peanuts")
</th>
<td class="editAddField">
@Html.CheckBox("IsPeaNut")
</td>
</tr>
它完美无缺。然后我对我的项目进行了一些更改,并希望在一个视图中使用两个不同的模型,因此我将绑定到视图的原始模型和ViewModel类中的第二个模型,并最终将这些代码行更改为以下内容:
<tr>
<th class="editAddLabel">
@Html.LabelFor(model => model.personVM.IsShellFish, "Allergic to Shellfish")
</th>
<td class="editAddField">
@Html.CheckBox("personVM.IsShellFish")
</td>
</tr>
<tr>
<th class="editAddLabel">
@Html.LabelFor(model => model.personVM.IsPeaNut, "Allergic to Peanuts")
</th>
<td class="editAddField">
@Html.CheckBox("personVM.IsPeaNut")
</td>
</tr>
我的所有非复选框模型属性都正常显示并且似乎不受影响,但只要我希望用户编辑其信息,复选框属性就无法在视图上正确显示。我知道在检查时属性从视图正确传递到模型,当我将viewmodel发送回视图时,它显示了与视图对应的字段的正确布尔值,所以我觉得它必须是我的视图代码导致所有复选框都未被选中,尽管它们的值可能是真的。可能是什么问题?