是否有任何内置的帮助方法可以在下拉列表中显示枚举?

Bla*_*man 1 asp.net-mvc html-helper

我有一些枚举,我需要在下拉列表中显示,并在我的管理页面中预先填充它们.

有没有内置的html助手呢?

(asp.net mvc)

Rob*_*vey 5

如何从ASP.NET MVC中的枚举创建下拉列表?

鉴于枚举

public enum Status
{ 
    Current = 1, 
    Pending = 2, 
    Cancelled = 3 
} 
Run Code Online (Sandbox Code Playgroud)

和扩展方法

public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{
  var values = from TEnum e in Enum.GetValues(typeof(TEnum))
               select new { ID = e, Name = e.ToString() };

  return new SelectList(values, "Id", "Name", enumObj);
}
Run Code Online (Sandbox Code Playgroud)

这允许你写:

ViewData["taskStatus"] = task.Status.ToSelectList();
Run Code Online (Sandbox Code Playgroud)