Раскрывающийся список показывает первичные ключи вместо имени в ядре ASP.NET и Razor - PullRequest
1 голос
/ 24 октября 2019

Я работаю с viewbag в C # и хочу показать некоторые цвета в теге <select> на моей HTML-странице.

Это моя модель в c #

public class CoreColorGroup
{
   [Key]
   public long CORECOLORGROUPID { get; set; }

   [MaxLength(100)]
   public string NAME { get; set; }
}

В моем контроллере Я запрашиваю ViewBag так:

ViewBag.colorlist = await _context
                            .DbSet<CoreColorGroup>()
                            .Query.OrderBy(x => x.CORECOLORGROUPID)
                            .Select(x => new SelectListItem(x.CORECOLORGROUPID.ToString(), x.NAME))
                            .ToListAsync();

Viewbag работаетхорошо, я отлаживаю свое приложение и получаю цвета через контроллер.

И это мой выбранный тег:

<div class="form-group">
    <label asp-for="CoreColorGroup" class="control-label"></label>
    <select asp-for="CORECOLORGROUPID" asp-items="@ViewBag.colorlist" class="form-control"></select>
</div>

Когда я запускаю приложение, раскрывающийся список содержит первичные ключи вместо имени изцвета.

Как показать названия цветов вместо первичных ключей ?

1 Ответ

2 голосов
/ 24 октября 2019

Вы неправильно инициализируете SelectListItem, SelectListItem не имеет конструктора , который принимает 2 аргумента.

Укажите свойства Value и Text ииспользовать синтаксис инициализатора объекта при создании SelectListItem:

.Select(x => new SelectListItem() { Text = x.NAME, Value = x.CORECOLORGROUPID.ToString()})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...