在 databasefirst mvc 中使用枚举作为下拉列表

using Enum for dropdownlist in databasefirst mvc

我在 Model(tablaMetadata) 中有一个字段,其中包含性别的布尔字段,如下所示: (我首先使用数据库 MVC)

 [DisplayName("gender")]
 [Display(Name = "gender")]
 public Nullable<bool> EmpSex { get; set; }

我想通过 dropdownlist 从 EmpSex 中获取 "Male" 或 "Female" 的值,然后将其转换为布尔值(用于将表单发布到数据库)。 我定义枚举如下:

public enum gender
{
    Male=1,
    Female=0
}

我不知道如何将 htmlhelper 用于 Enumdropdownlist 并将下拉列表的字符串值转换为布尔值。 你能帮我定义枚举的下拉列表和转换值吗?

在您看来,您可以像这样创建下拉列表

像这样从 enum 创建列表

@{ 
    var genderList = Enum.GetValues(typeof(Gender)).OfType<Gender>().Select(m => new { Text = m.ToString(), Value = (int)m }).ToList(); 
}

并像这样创建 DropDown

@Html.DropDownList("EmpSex", new SelectList(genderList, "Value", "Text", Model.EmpSex))

@Html.DropDownListFor(model => model.EmpSex, new SelectList(genderList, "Value", "Text", Model.EmpSex))