MVC Enum下拉列表

时间:2017-06-28 08:31:08

标签: asp.net-mvc

我想在Razor DropDownList中列出一个枚举。我的模特的财产是:

public gender gender { get; set; }

这是我的观看代码:

@Html.DropDownListFor(model => model.gender, new SelectList(Enum.GetValues(typeof(gender))),new { @class="form-control"})

该列表有效,但jQuery Validation错误消息为字段Gender必须是数字

我该如何解决?

由于

3 个答案:

答案 0 :(得分:3)

这是您使用**Enum**

实现的目标

型号:

 public enum Genders
 {
            [Display(Name = "Male")]
            M = 1,
            [Display(Name = "Female")]
            N = 2            
 }
 public Genders Gender { get; set; } 

查看:

@Html.EnumDropDownListFor(x => x.Gender, "Please Select", new { @class = "form-control" })

答案 1 :(得分:0)

试试这个

模型

public int gender { get; set; }

控制器

public enum selectgender{
...
}

ViewBag.selectgender= Enum.GetValues(typeof(selectgender)).Cast<selectgender>();

查看

@Html.DropDownListFor(model => model.gender, new SelectList(ViewBag.selectgender), "Select Gender",new { @class = "form-control" })

答案 2 :(得分:0)

更新2020 ...

向模型添加枚举类型,性别。

public enum GenderType
{
    Male,
    Female,
    Other
}
public GenderType Gender { get; set; }

在视图中,执行此操作...

<select asp-for="Gender" asp-items="@Html.GetEnumSelectList<GenderType>()">