【问题标题】:Forcing a dropdown list for an entity property强制实体属性的下拉列表
【发布时间】:2011-01-23 16:46:49
【问题描述】:

我正在尝试跟踪我的数据库中的员工。我有两张表,Employees 和 Departments。 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 创建了一个文本框。

如何强制视图显示 DepartmentID 的下拉列表,该下拉列表包含我数据库中的所有部门作为下拉列表项?有没有办法通过向我的实体中的属性添加元数据属性来做到这一点?

【问题讨论】:

    标签: c# asp.net asp.net-mvc


    【解决方案1】:

    不,你不能只用一个属性来做到这一点。您可以使用Html.DropDownListFor。您还必须向视图传递所有部门的列表。

    <%= Html.DropDownListFor(  
        x => x.DepartmentID,  
        Model.Departments }  
    ) %>  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      相关资源
      最近更新 更多