관리자를위한 사용자 관리 사이트가 있습니다. 여기에서 그는 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 });
}
---- 내가 그들을 확인하고 제출하면보기 내 Register
행동에 브레이크 포인트에 도착,
@{ foreach (var item in Model.RolesContainer)
{
@Html.DisplayFor(m => item.Text)
@Html.CheckBoxFor(m => item.Selected)
}
}
를 --------하지만 RolesContainer
은 널 이 점 - 왜이 사람이 내게 말할 수 있습니까?
httpost 메소드의 서명을 표시 할 수 있습니까? 뷰에 전달할 모델과 다른 유형의 매개 변수가 필요할 것으로 생각됩니다. – Nope
코드를 지금 업데이트했습니다. 요점은 다음과 같습니다. if (ModelState.IsValid) { var Rolemodel = model.RolesContainer; } RolesContainer가 null이며 선택한 값이 포함되어 있지 않습니다. – Mrlondon7100