Skip to content

Instantly share code, notes, and snippets.

@jchadwick
Created April 5, 2012 20:55
Show Gist options
  • Save jchadwick/2314115 to your computer and use it in GitHub Desktop.
Save jchadwick/2314115 to your computer and use it in GitHub Desktop.
ASP.NET MVC Enum Drop-Down List
using System.Web.Mvc;
using System.Web.Mvc.Html;
public static class HtmlHelperEnumExtensions
{
public static IHtmlString EnumDropDownListFor<TModel, TEnum>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TEnum>> field, TEnum selectedValue = default(TEnum))
where TEnum : struct
{
var name = (field.Body as MemberExpression).Member.Name;
return EnumDropDownList(helper, name, selectedValue);
}
public static IHtmlString EnumDropDownList<TEnum>(this HtmlHelper helper, string name, TEnum selectedValue = default(TEnum))
where TEnum :struct
{
var selectListItems =
from Enum enumVal in Enum.GetValues(typeof (TEnum))
let value = enumVal.ToString()
where value != "Unknown"
let enumName = Enum.GetName(typeof (TEnum), enumVal)
let selected = ((object)enumVal) == (object)selectedValue
select new SelectListItem { Text = enumName, Value = value };
return helper.DropDownList(name, selectListItems);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment