Скрыть перечисление в раскрывающийся список на страницах бритвы core2.1

у меня есть следующее перечисление

public class Blog {

   public enum BlogType {
     Article,
     News
   }

}

я хочу преобразовать его в раскрывающийся список, но получаю сообщение об ошибке: Невозможно неявно преобразовать тип «Blog.BlogType» в «System.Collections.Generic.IEnumerable»

мой код:

IList<SelectListItem> list = Enum.GetValues(typeof(Blog.BlogType))
.Cast<Blog.BlogType>()
.Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() })
.ToList();

SelectList data = new SelectList(list, "Value", "Text");

я пробовал несколько решений, но у меня такая же проблема..

спасибо ..


person J. Edmond    schedule 09.12.2018    source источник
comment
Возможный дубликат Использование перечисления для раскрывающегося списка в ASP.NET Ядро MVC   -  person Mohammad Khodabandeh    schedule 09.12.2018


Ответы (2)


Самый простой способ сделать это — использовать метод Html.GetEnumSelectList<TEnum> в помощнике тега select:

<select asp-for="BlogType" asp-items="Html.GetEnumSelectList<BlogType>()">
    <option value="">Pick one</option>
</select>

Дополнительные сведения об использовании помощника выбора тега и перечислений в Razor Pages см. здесь: https://www.learnrazorpages.com/razor-pages/tag-helpers/select-tag-helper#enumerations

person Mike Brind    schedule 10.12.2018

Попробуйте этот код

  Html.DropDownListFor(o => o.EnumProperty, Enum.GetValues(typeof(Blog)).Cast<Blog>().Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() }))
person Mac D'zen    schedule 10.12.2018