我正在尝试跟踪数据库中的员工。我有两个表,员工和部门。 Employees表通过名为DepartmentID的列包含与Departments的外键关系。
这是我的实体:
[Table(Name = "Employees")]
public class Employee
{
[HiddenInput(DisplayValue = false)]
[Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int UserID { get; set; }
[Column]
[Required(ErrorMessage = "Please enter a first name")]
[DisplayName("First Name")]
public string FirstName { get; set; }
[Column]
[DisplayName("Last Name")]
[Required(ErrorMessage = "Please enter a last name")]
public string LastName { get; set; }
[Column]
[DisplayName("Department")]
[Required(ErrorMessage = "Please select a department")]
public int DepartmentID { get; set; }
}
我有一个页面,其中包含添加员工的表单。我正在将实体传递到我的视图页面,并调用<%: Html.EditorForModel() %>
问题是该视图会为DepartmentID创建一个文本框。
如何强制视图显示包含数据库中所有Departments作为下拉列表项的DepartmentID的下拉列表?有没有办法通过向我的实体中的属性添加元数据属性来实现这一点?
答案 0 :(得分:1)
不,你不能只用一个属性来做。您可以使用Html.DropDownListFor
。您还必须将您的视图传递给所有部门的列表。
<%= Html.DropDownListFor(
x => x.DepartmentID,
Model.Departments }
) %>