public ActionResult Change(CreateChangeRoleViewModel model) { // ActionResult для ajax BeginForm ViewBag.ActRes = "Change"; // список групп типов контента List <ContentGroup> cgList = contenttype.ContentGroupList(""); // закидываем список групп типов контента ViewBag.cgList = cgList; // если список типов контента пуст, то невозможно создать роль (он уже не пуст) ViewBag.Empty_ctList = 1; // валидация модели if (ModelState.IsValid) { int selected = 0; // проверка списка экшенов (мин. 1 должен быть 'Selected', исключая контроллер) foreach (var i in model.ContentTypes) { // отключаем 'Selected' у контроллера i.Actions[0].Selected = false; // остальные экшены foreach (var j in i.Actions) { if (j.Selected) { selected = 1; } } // включаем 'Selected' у контроллера i.Actions[0].Selected = true; } // если выбрано хотя бы одно разрешение if (selected == 1) { // изменение группы пользователей if (account.ChangeRole(model.Id, model.Name, model.ContentTypes)) { // обновляем хранилище ролей RoleConfig.RepositoryRoles(); // лог logging.Logged( "Info" , "Пользователь '" + User.Identity.Name + "' изменил роль: " + model.Name.ToString() , this.GetType().Namespace , this.GetType().Name ); return(Json(new { result = "Redirect", url = Url.Action("Group", "System") })); } ModelState.AddModelError("", "Эта группа уже используется"); } else { ModelState.AddModelError("", "У группы должно быть хотя бы одно разрешение."); } } else { ModelState.AddModelError("", "Ошибка, пожалуйста проверьте данные"); } return(PartialView("CreateChangeRole", model)); }