1
두 가지 사용자 동작 편집 방법이 있습니다. 첫 번째 확인란은 정확하게 IsAdmin
속성으로 채 웁니다.MVC3 뷰의 부울 모델 속성에서 체크 박스를 다시 채우는 방법
public ActionResult Edit(string username)
{
var user = Membership.GetUser(username);
var model = Map(user);
return View(model);
}
두 번째 방법은 로그인 한 사용자가 (확인란을 선택하지 않은) 자신의 관리자 privs 및 삭제하기 위해 노력하고 있는지 확인 true로 다시 model.IsAdmin 속성을 설정하여 체크 박스를 다시 채워야한다. 반환 된 모델이 올바르게 채워지지만 확인란이 선택되지 않습니다.
는[HttpPost]
public ActionResult Edit(UserModel model)
{
if (model.UserName == User.Identity.Name && model.IsAdmin == false)
{
ModelState.AddModelError("", "You cannot remove your own admin privileges");
model.IsAdmin = true;
return View(model);
}
if (ModelState.IsValid)
{
//...
}
}
편집 사용자보기 그렇지 않으면 CheckBoxFor 도우미는 하나 대신 modelstate에서 값을 사용합니다,이
<div class="simpleform">
@using (Html.BeginForm())
{
<fieldset>
<div>
@Html.LabelFor(u => u.UserName)</div>
<div>
@Html.TextBoxFor(u => u.UserName)</div>
<div>
@Html.LabelFor(u => u.IsAdmin)</div>
<div>
@Html.CheckBoxFor(u => u.IsAdmin)</div>
<br />
<div>
<input type="submit" value="Submit" />
@Html.ActionLink("Cancel", "Index")</div>
</fieldset>
}
완벽합니다. Darin 감사합니다. – friedX