Я работаю с viewbag
на C # и хочу показать некоторые цвета в теге <select>
на моей HTML-странице.
Это моя модель на c #
public class CoreColorGroup
{
[Key]
public long CORECOLORGROUPID { get; set; }
[MaxLength(100)]
public string NAME { get; set; }
}
В моем контроллере я запрашиваю панель просмотра следующим образом:
ViewBag.colorlist = await _context
.DbSet<CoreColorGroup>()
.Query.OrderBy(x => x.CORECOLORGROUPID)
.Select(x => new SelectListItem(x.CORECOLORGROUPID.ToString(), x.NAME))
.ToListAsync();
Панель просмотра работает хорошо. Я отлаживаю свое приложение и получаю цвета через контроллер.
И это мой тег выбора:
<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 ответ
Вы неправильно инициализируете SelectListItem
, SelectListItem
не имеет конструктор, который принимает 2 аргумента.
Задайте свойства Value
и Text
и используйте синтаксис инициализатора объекта при создании SelectListItem
:
.Select(x => new SelectListItem() { Text = x.NAME, Value = x.CORECOLORGROUPID.ToString()})
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.