为什么如果在模型中声明为enum.getValues(typeof())为什么枚举值(typeof())



我想使用MVC中的枚举填充带有性别值的下拉列表,但是enum.getValues(typeof(...(不是返回值。这是.cshtml part:

    <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
        }

我想念什么?

您需要将结果施加到所需的实际数组类型

(Gender[])Enum.GetValues(typeof(Gender))

您必须施放它,然后选择正确的类型 - 我已将其用于Kendo下拉菜,不确定它是否完全相同:

Enum.GetValues(typeof(Gender)).Cast<Gender>().Select(at =>
    new SelectListItem
    {
        Text = at.ToString(),
        Value = ((int)at).ToString()
    }
))

最新更新