asp.net-mvc - 在 databasefirst mvc 中使用枚举作为下拉列表

标签 asp.net-mvc asp.net-mvc-4 enums type-conversion database-first

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

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

我想通过 dropdownlist 从 EmpSex 获取“男性”或“女性”的值,然后将其转换为 bool 值(用于将表单发布到数据库)。 我将 Enum 定义如下:

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

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

最佳答案

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

像这样从 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))

关于asp.net-mvc - 在 databasefirst mvc 中使用枚举作为下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47771290/

相关文章:

asp.net-mvc - 在 Controller 中创建 HtmlHelper 实例

c# - 如何在表单中呈现列表项?

c++ - 随机生成一个没有重复元素的枚举数组(C++)

c# - ASP.NET MVC Windows 身份验证拒绝工作

c# - 具有 ASP.NET 标识的 AuthorizeAttribute

c# - 如何在asp.net core的路由属性中设置正则表达式的匹配超时

javascript - MVC - 在 jquery 中读取模型变量

c# - ASP.NET MVC 中的 session 本地存储或服务器端 session ?

arrays - 为什么数组不符合 Equatable,而它的项在 Swift 中是 Equatable 的?

c++ - 在开关盒中返回 bool 值