Я отображаю раскрывающийся список, чтобы позволить пользователю выбрать значение перечисления с помощью этого решения http://blogs.msdn.com/b/ukadc/archive/2010/06/22/asp-net-mvc-creating-a-dropdownlist-helper-for-enums.aspx.
это помощник
public static MvcHtmlString EnumDropDownListFor<TModel, TEnum>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TEnum>> expression, object htmlAttributes)
{
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 = CultureLocalizationHelper.GetString(value.ToString(), typeof(SiteResources.Core.Views.CulturalConfiguration.Index)),
Value = value.ToString(),
Selected = value.Equals(metadata.Model)
});
return htmlHelper.DropDownListFor(expression, items, htmlAttributes);
}
Этот подход очень хорошо работает с любым перечислениемно не с этим
public enum Color
{
Orange = 1,
Green = 2,
Blue = 3,
Primary = 4
}
У меня очень странная проблема, помощник не работает с этим перечислением.
Я отлаживаю SelectListItems и есть один, который выбран, но DropDownListFor не отображаетлюбой из элементов с selected = "selected"
Есть идеи?
Спасибо за ваше время!