繁体   English   中英

CheckBox的值未发布到模型

[英]Value of CheckBox not posted to model

我有一个页面,其中包含一个矩阵,用户链接到不同的技能。 这将显示为包含复选框的页面。 我想要的是只保存实际更改的行。 因此,我添加了一个“IsChanged”属性,当用户更改复选框的值时,该属性设置为“true”。

我有以下代码:

@for (var i = 0; i < Model.EmployeeList.Count; i++)
{
    <input type="hidden" asp-for="EmployeeList[i].Id" />
    <input type="checkbox" asp-for="EmployeeList[i].IsChanged" name="IsChanged" id="IsChanged_@Model.EmployeeList[i].Id" />

    <tr>
        <th scope="row">@Model.EmployeeList[i].Name @Model.EmployeeList[i].Surname</th>
        <th scope="row">
            @Model.EmployeeList[i].Location
        </th>
    @for (var j = 0; j < Model.EmployeeList[i].SelectedSkillList.Count; j++)
    {
        <td>                
            <label class="label">
                <input asp-for="EmployeeList[i].SelectedSkillList[j].IsSelected" data-changedHidden="IsChanged_@Model.EmployeeList[i].Id" type="checkbox" class="label__checkbox" />
                <span class="label__text">
                    <span class="label__check">
                        <i class="fa fa-check icon"></i>
                    </span>
                </span>
            </label>

            @Html.HiddenFor(x => Model.EmployeeList[i].SelectedSkillList[j].Prefix)
        </td>
    }
    </tr>
}

当我检查@for的其他复选框之一时,检查给定行的复选框EmployeeList [i] .IsChanged。 这很好,我可以在我的页面上看到这种情况。

但是,当我保存帖子数据时,IsChanged复选框的值不会包含在帖子中。 它总是错误的。

我在哪里弄错了? 谁能帮我?

<input type="checkbox" name="IsChanged" id="IsChanged_1" data-val="true" data-val-required="The IsChanged field is required." value="true">
<input name="EmployeeList[0].IsChanged" type="hidden" value="false">

这是模型:

        public List<Core.Employee> EmployeeList { get; set; }

    public IEnumerable<MachineTypeSpecs> MachineTypeList { get; set; }

    public CompetenceMatrixModel(IEmployeeData employeeData, IMachineTypeSpecs machineTypeSpecs)
    {
        this._employeeData = employeeData;
        this._machineTypeSpecs = machineTypeSpecs;
    }

Core.Employee包含IsChanged属性。

好傻我,删除名称纠正了问题。 感谢@Craig H.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM