复选框值未正确显示在视图中

时间:2015-07-21 16:57:45

标签: asp.net-mvc model-view-controller

我以前的观点包含如下:

<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发送回视图时,它显示了与视图对应的字段的正确布尔值,所以我觉得它必须是我的视图代码导致所有复选框都未被选中,尽管它们的值可能是真的。可能是什么问题?

0 个答案:

没有答案