У меня есть ситуация, когда мне нужно заполнить раскрывающийся список с помощью приведенного ниже кода.Я использую этот код в одной ситуации, установив (и получаю список всех пользователей, как и ожидалось):
var users = Membership.GetAllUsers();
, но если я использую
var users = Roles.GetUsersInRole("MyRole");
, мой раскрывающийся список незаполнить пользователей (я уверен, что у меня есть пользователи в указанной роли).
Нужно ли мне менять свой контроллер, чтобы использовать другой тип помимо «MemberShipUser»?
Нужно ли мнеподходить к ситуации совершенно по-другому, поскольку я использую роли вместо списка пользователей?
Вот мой код -
Контроллер:
var users = Roles.GetUsersInRole("MyRole");
var model = new CreateStudentViewModel
{
Users = users.OfType<MembershipUser>().Select(x => new SelectListItem
{
Value = x.UserName,
Text = x.UserName,
})
};
ViewModel:
public class MyViewModel
{
[Display(Name = "selected user")]
public string SelectedUser { get; set; }
public IEnumerable<SelectListItem> Users { get; set; }
}
Вид:
<div class="editor-label">
@Html.LabelFor(model => model.SelectedUser)
</div>
<div class="editor-field">
@Html.LabelFor(x => x.SelectedUser)
@Html.DropDownListFor(x => x.SelectedUser, Model.Users)
</div>