Переведите перечисление в выпадающий список на страницах бритвы core2.1 - PullRequest
0 голосов
/ 09 декабря 2018

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

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");

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

спасибо ..

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

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

  Html.DropDownListFor(o => o.EnumProperty, Enum.GetValues(typeof(Blog)).Cast<Blog>().Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() }))
0 голосов
/ 10 декабря 2018

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

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

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

...