枚举值在mvc4的下拉列表中

use*_*593 1 c# asp.net-mvc-4

如何使用mvc4中的枚举值创建下拉列表

我有一个类Language.cs

 public enum Language {
    English = 0
}
Run Code Online (Sandbox Code Playgroud)

我的财产是

public Language Language { get; set; }
Run Code Online (Sandbox Code Playgroud)

我将如何通过下拉列表调用我的视图

Dar*_*rov 6

你可以有一个视图模型:

public class MyViewModel
{
    public Language SelectedLanguage { get; set; }
    public IEnumerable<SelectListItem> Languages
    {
        get 
        {
            var languages = 
                from l in Enum.GetValues(typeof(Language))
                select new { ID = (int)d, Name = d.ToString() };
            return new SelectList(languages , "ID", "Name", this.SelectedLanguage);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在你看来:

@Html.DropDownListFor(x => x.SelectedLanguage, Model.Languages)
Run Code Online (Sandbox Code Playgroud)

另一种可能性是编写一个自定义助手,它将封装这个逻辑,如图所示this blog post.