У меня есть перечисление для одного из свойств моей модели представления. Я хочу отобразить раскрывающийся список, содержащий все значения перечисления. Я могу заставить это работать со следующим кодом.Как заполнить выпадающий список значениями перечисления?
Что мне интересно, есть ли простой способ конвертировать из enum в IEnumerable? Я могу сделать это вручную, как в следующем примере, но когда я добавляю новое значение перечисления, код прерывается. Я полагаю, что я могу сделать это через отражение в соответствии с этим example, но но есть ли другие способы сделать это?
public enum Currencies
{
CAD, USD, EUR
}
public ViewModel
{
[Required]
public Currencies SelectedCurrency {get; set;}
public SelectList Currencies
{
List<Currencies> c = new List<Currencies>();
c.Add(Currencies.CAD);
c.Add(Currencies.USD);
c.Add(Currencies.EUR);
return new SelectList(c);
}
}
Отличное решение! –
Отличное решение. Однако, если запись в enum не имеет атрибута описания, она терпит неудачу. Поэтому замените '.First()' на '.FirstOrDefault()' и вместо 'items.Add (value, attrs.GetName());' have 'items.Add (значение, attrs! = Null? Attrs.GetName (): value.ToString()); 'Это экономит ваш ввод в описании для очевидных записей Enum. – trailmax
сделано, спасибо за исправления. –