2012-01-20 82 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