我有一个页面,其中包含一个矩阵,其中用户链接到不同的技能。 这显示为包含复选框的页面。 我只想保存实际上已更改的行。 为此,我添加了一个“ 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属性。
答案 0 :(得分:0)
好吧,让我愚蠢,删除名称更正了该问题。感谢@Craig H