Я пытаюсь управлять ролями в приложении MVC3. Идея состоит в том, что у меня есть список пользователей, и когда я нажимаю кнопку «Редактировать роли» в строке, я получаю модальное окно со списком всех возможных ролей, среди которых отмечены те, участником которых является пользователь.
Затем я могу выбрать новые роли, нажать «Сохранить» и отправить сообщение ajax обратно на сервер, чтобы сохранить изменения.
У меня всплывает модальное окно, но я не уверен, как сгенерировать флажки таким образом, чтобы их было легко отправить обратно на сервер после изменения. Мне нужно самое простое решение.
Вот что у меня есть для частичного представления, которое заполняется модальным окном, когда вы нажимаете «Редактировать роли»:
public ActionResult ChooseRolePartial(string username)
{
var userRoles = Roles.GetRolesForUser(username);
var list = new MultiSelectList(Roles.GetAllRoles());
foreach (var item in list)
{
item.Selected = userRoles.Contains(item.Value);
}
var model = new ChooseRoleModel
{
Roles = list,
Username = username
};
return PartialView("Partials/ChooseRolePartial", model);
}
Я надеялся, что для MultiSelectList есть EditorFor, и все это будет обработано за меня. Но, похоже, это не так. Это просто делает текст ложным для каждой из моих ролей.
Как лучше всего создать этот список флажков и отправить его вместе с именем пользователя обратно на сервер?