【发布时间】:2014-03-07 09:35:31
【问题描述】:
我想使用枚举的描述而不是它的值来创建一个下拉列表。
我想知道如何在以下为枚举创建下拉列表的代码中获取描述而不是值:
public static MvcHtmlString DropDownListForEnum<TModel, TEnum>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TEnum>> expression)
{
// get expression property description
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();
IEnumerable<SelectListItem> items =
values.Select(value => new SelectListItem
{
Text = value.ToString(),
Value = value.ToString(),
Selected = value.Equals(metadata.Model)
});
return htmlHelper.DropDownListFor(
expression,
items
);
}
【问题讨论】:
标签: c# enums html.dropdownlistfor