我正在尝试使用Razor视图中的标记帮助程序在ASP.NET MVC Core中创建一个带有枚举属性的下拉列表:
这是模型:
public class PersonalMember : Member { [Required, Display(Name = "First Name")] public string FirstName { get; set; } [Required, Display(Name = "Last Name")] public string LastName { get; set; } [EnumDataType(typeof(Gender))] public Gender GenderType { get; set; } } public enum Gender { Male = 1, Female = 2 }
以下是视图中表单的一部分:
我遇到的问题是,之后Html.GetEnumSelectList
,GenderType
无法识别并显示为错误.
有谁知道如何解决这个问题?
我认为你不小心使用了GenderType而不是Gender.正确的语法是
GenderType
是您的属性名称,而不是Enum类型.GetEnumSelectList方法要求您为其指定枚举的类型,而不是模型中属性的名称.
试试这个:
Html.GetEnumSelectList()
您只需使用Razor语法:
@Html.DropDownList("StudentGender", Html.GetEnumSelectList(), "Select Gender",new { @class = "form-control" })