2012-01-20 132 views
0

可能重复创建下拉列表:
MVC3 Razor DropDownListFor Enums使用枚举

我在ASP.NET MVC3(真正的新)一个新手。我想为四年级的学生创建一个下拉列表框。我有:“第一”,“第二”,“第三”和“第四”。现在,在模型为我创建一个枚举命名YLevels:

public enum YLevels 
    { 
     First =1, 
     Second, 
     Third , 
     Fourth 
    } 

作为一个整体,我的模型类StudentMT包含:

public StudentMT() 
    { 
     Remarks = string.Empty; 
    } 

    public int Id { get; set; } 

    [Required(ErrorMessage = "First Name is required.")] 
    [StringLength(30, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)] 
    [Display(Name= "First Name")] 
    public string FName { get; set; } 

    [Required(ErrorMessage = "Last Name is required.")] 
    [StringLength(30, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)] 
    [Display(Name = "Last Name")] 
    public string LName { get; set; } 

    public string Gender { get; set; } 

    [Display(Name="Year Level")] 
    public int YLevel { get; set; } 

    public string Remarks { get; set; } 

    public enum YLevels 
    { 
     First =1, 
     Second, 
     Third , 
     Fourth 
    } 
    } 

那么在我看来,我想用一个EditorFor ():

<div class="editor-label"> 
     @Html.LabelFor(model => model.YLevel) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.YLevel) 
     @Html.ValidationMessageFor(model => model.YLevel)<br/> 
    </div> 

我该如何定义一个属性来使用这个枚举?如何使用EditorFor()显示下拉列表?请建议我可以做些什么。

预先感谢您!

+0

@DarinDimitrov:thanksfor这一点,但有什么办法,我创建使用@ Html.EditorFor()代替@ Html.DropDownListFor)一个下拉列表(? – ideAvi

+0

是的,您可以:您可以为给定属性定义自定义编辑器模板,并在此自定义编辑器模板中使用我链接到的帖子中显示的自定义帮助器。 –

+0

再次感谢:) – ideAvi

回答

0

你能尝试:

[Display(Name="Year Level")] 
public YLevels YLevel { get; set; } 
+0

谢谢。我尝试过,但它显示一个文本框,而不是一个下拉列表 – ideAvi

+0

@ Html.DropDownListFor(m => m.YourModelProperty,new SelectList(Enum.GetValues(typeof(YourEnumType)))) 这一个班轮应该完成 – JM1990