我想在MVC中使用枚举填充带有性别值的下拉列表,但是Enum.GetValues(typeof(...)不返回值。这是.cshtml部分:
<div class="form-group">
@Html.LabelFor(m => m.parGender, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownListFor(m => m.parGender, new SelectList(Enum.GetValues(typeof(Gender))), new { @class = "form-control" })
</div>
</div>
这是此模型:
[Required(ErrorMessage = "Select your gender!")]
[Display(Name = "Gender:")]
public Gender parGender { get; set; }
public enum Gender
{
Male,
Female
}
我为此想念什么?
答案 0 :(得分:0)
您需要将结果转换为所需的实际数组类型
(Gender[])Enum.GetValues(typeof(Gender))
答案 1 :(得分:0)
您将不得不对其进行强制转换,然后可能选择正确的类型-我将其用于Kendo Dropdowns,不确定是否会完全相同:
Enum.GetValues(typeof(Gender)).Cast<Gender>().Select(at =>
new SelectListItem
{
Text = at.ToString(),
Value = ((int)at).ToString()
}
))