У меня есть админ-сайт для администратора для создания пользователей. Здесь он должен выбрать роли для пользователя - например, сайт конфигурации Asp.NET. Я сделал 3 флажка с разными ролями.Несколько ролей в Asp.net MVC3
[Authorize(Roles = "Admin")]
[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
var Rolemodel = model.RolesContainer;
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
[Authorize(Roles = "Admin")]
public ActionResult Register()
{
List<SelectListItem> tempRoles = new List<SelectListItem>();
tempRoles.Add(new SelectListItem{ Text = "Admin", Selected = false, Value = "Admin" });
tempRoles.Add(new SelectListItem{ Text = "Production", Selected = false, Value = "Production"});
tempRoles.Add(new SelectListItem{ Text = "Sale", Selected = false, Value = "Sale"});
return View(new RegisterModel { RolesContainer = tempRoles });
}
---- Просмотр --------
@{ foreach (var item in Model.RolesContainer)
{
@Html.DisplayFor(m => item.Text)
@Html.CheckBoxFor(m => item.Selected)
}
}
Когда я проверяю их и представить, я добираюсь до точки останова в моем Register
действии, но RolesContainer
равно нулю в этот момент - может ли кто-нибудь сказать мне, почему это так?
Можете ли вы показать подпись своего метода httpost? Я думаю, вы можете ожидать параметр типа, отличный от модели, которую вы передаете в представление. – Nope
Я обновил код сейчас, дело в том, когда я добраться до: если (ModelState.IsValid) { вар RoleModel = model.RolesContainer; } RolesContainer имеет значение null и не содержит выбранных значений – Mrlondon7100