Заполнение выпадающего списка в ASP.NET Core - PullRequest
0 голосов
/ 20 января 2019

У меня проблема с выпадающим списком. Он всегда пуст, хотя при отладке в списке 4 разных записи, которые задаются в asp-items следующим образом:

https://imgur.com/a/CYZSO5z

Что я делаю не так?

ViewModel:

public IEnumerable<SelectListItem> SelectRole { get; set; }

public string RoleId { get; set; }

Контроллер:

 model.SelectRole = _roleManager.Roles?.Select(s => new SelectListItem
 {
     Value = s.Id,
     Text = s.Name
 });

Вид:

<select asp-for="RoleId" asp-items="@Model.SelectRole" class="form-control" />

1 Ответ

0 голосов
/ 20 января 2019

Проблема в том, что вы используете самозакрывающийся тег select следующим образом:

<select asp-for="RoleId" asp-items="@Model.SelectRole" class="form-control" />

Он не будет правильно генерировать список выбора.

Вы можетеНастройте свой код следующим образом:

В ViewModel:

public SelectList RoleSelectList { get; set; }

public string RoleId { get; set; }

В методе контроллера:

var roleList = _roleManager.Roles.Select(r => new {r.Id, r.Name}).ToList();
model.RoleSelectList = new SelectList(roleList, "Id","Name");

В представлении:

<select asp-for="RoleId" asp-items="Model.RoleSelectList" class="form-control">
   <option value="">Select Role</option>
</select>

Теперь все должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...