我有这个模型:
public class Employee {
public int EmployeeId { get; set; }
[Required(ErrorMessage = "Employee Name is Required.")]
public string Name { get; set; }
public SkillSet SkillSet { get; set; }
}
public class SkillSet {
public int SkillSetId { get; set; }
public string ProgrammingLanguage { get; set; }
public int EmployeeId { get; set; }
public Employee Employee { get; set; }
}
使用在表单中呈现的局部视图:
@Html.HiddenFor(x => x.EmployeeId)
<div class="row">
<div class="span3"><strong>Name</strong></div>
<div class="span2">@Html.TextBoxFor(x => x.Name, new { @class = "" })</div>
</div>
@Html.HiddenFor(x => x.SkillSet.SkillSetId)
@Html.HiddenFor(x => x.SkillSet.EmployeeId)
<div class="row">
<div class="span3"><strong>Programming Skills</strong></div>
<div class="span2">@Html.TextBoxFor(x => x.SkillSet.Programming, new { @class = "" })</div>
</div>
我通过返回 Employee 的新实例进行发布来填充表单,但是当我尝试保存新记录时,ModelState 中出现关于SkillSet.SkillSetId
新记录为空的错误。
我在这里缺少什么来将新的父子记录添加到我的数据库中?
编辑:我现在可以开始工作了。我的问题只是为我的表单渲染隐藏字段。我不得不将隐藏字段放在一个 div 中,它们渲染得很好,我能够处理回发的数据。