I have a situation where I need to populate a drop-down list using the below code. I use this code in one situation by setting (and I get a list of all users as expected):
var users = Membership.GetAllUsers();
but if I use
var users = Roles.GetUsersInRole("MyRole");
my drop-down does not populate with any users (I am certain I have users in the listed role).
Do I need to change my controller to use a different type aside from "MemberShipUser" ?
Do I need to approach the situation in an entirely different fashion since I am using roles instead of a list of users?
Here is my code -
Controller:
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; }
}
View:
<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>