Я создаю SelectList с помощью SelectItems. Поле Text попадает на страницу, но свойство Text не заполняется текстом, вместо этого используется имя класса, я не могу понять, что я могу делать неправильно.
Я обнаружил, что существует ситуация, когда не должно быть отдельного закрытия для тега (), а скорее />. Это сделало список выбора пустым.
Это код в контроллере (как я уже сказал, значение передается на страницу при отладке)
var vitualOfficeManagerViewModel = new VirtualOfficeManagerViewModel();
var enumForSelectList = _context.BusinessType.AsEnumerable().Select(b = >new {
b.Name,
b.Id
});
var initalizeSelectListToAddTo = new List < SelectListItem > ();
foreach(var item in enumForSelectList) {
var x = new SelectListItem(item.Name.ToString(), item.Id.ToString());
initalizeSelectListToAddTo.Add(x);
}
vitualOfficeManagerViewModel.BusinessTypesSelect = new SelectList(initalizeSelectListToAddTo);
//var testt = new SelectList()
return View(vitualOfficeManagerViewModel);
И это код, который я имею в cshtml
<div class="form-group">
<select asp-for="BusinessTypes"
asp-items="Model.BusinessTypesSelect">
</select>
</div>
Я ожидаю, что список будет иметь значение свойства Text, например "Компьютерное программирование"
но результат - «Microsoft.AspNetCore.Mvc.Rendering.SelectListItem»