在 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))
我在 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))