我填写的下拉列表如下:
@Html.DropDownListFor(model => model.Department.Id, new SelectList(db.PhoenixIKDepartments.ToList(), "Id", "Name"))
我希望有Id,Code和Name,但只有Id和ModelState是假的。
public class Phoenix_IK_Persons
{
[Key]
public int Id { get; set; }
[StringLength(50)]
public string Name { get; set; }
[StringLength(500)]
public string Surname { get; set; }
[StringLength(50)]
public string Registry { get; set; }
public Phoenix_IK_Departments Department { get; set; }
}
public class Phoenix_IK_Departments
{
[Key]
public int Id { get; set; }
[StringLength(50)]
[Required(AllowEmptyStrings=false, ErrorMessage="Lütfen Kod Giriniz!")]
public string Code { get; set; }
[Required(AllowEmptyStrings = false, ErrorMessage = "Lütfen Ad Giriniz!")]
[StringLength(500)]
public string Name { get; set; }
}
是否可以帮助我正确填写下拉列表中的ID,名称和代码?
提前谢谢!
答案 0 :(得分:1)
模型上未填充Code
和Name
的原因是因为这些字段未包含在 和 中<form>
标记在任何地方。这行代码:
model => model.Department.Id
绑定到该字段。如果您查看生成的HTML,您会注意到name
和id
属性表明了这一点。
但是,如果您只是放入两个隐藏的字段:
@Html.HiddenFieldFor(model => model.Department.Code);
@Html.HiddenFieldFor(model => model.Department.Name);
他们会回复价值。如果你需要它们有一个值,你只需在JavaScript中分配它们,当它们被回发时,它们将被分配给模型。