RoleController라는 컨트롤러에 다음 ActionResult가 있습니다.
[HttpPost]
public ActionResult UsersForRole(RoleModel roleModel)
{
if (ModelState.IsValid)
{
_roleService.AssignUsersToRole(roleModel.Users, roleModel);
}
return View(roleModel);
}
내보기에서 저장 (몇 가지 양식 중 하나에서)을 누르면 모델의 매개 변수가 모두 null입니다.
이 페이지의 아이디어에는 model.Users (역할에 할당 된 사용자 목록)와 model.UsersNotInRole (선택한 역할에 할당되지 않은 사용자 목록)의 두 가지 목록 상자가 있습니다.
보기가 올바르게 표시되고 제출을 누르면 컨트롤러에 표시된대로 _roleService.AssignUsersToRole ()을 실행해야합니다.
RoleModel.cs
public class RoleModel
{
public int Id { get; set; }
public string RoleName { get; set; }
public string Description { get; set; }
public DateTime DateCreated { get; set; }
public int CreatedBy { get; set; }
public DateTime LastUpdated { get; set; }
public int LastUpdateBy { get; set; }
[NotMapped]
public State State { get; set; }
public virtual List<UserModel> Users { get; set; }
public virtual List<UserModel> UsersNotInRole { get; set; }
public virtual List<RightModel> Rights { get; set; }
public List<UserModel> SelectedUsersNotInRole { get; set; }
public List<UserModel> SelectedUsers { get; set; }
public RoleModel()
{
Users = new List<UserModel>();
SelectedUsersNotInRole = new List<UserModel>();
SelectedUsers = new List<UserModel>();
}
}
왜 이런 일이 발생하는지 아이디어가 있습니까?
보기 (Details.cshtml)
@model Application.Core.Models.Roles.RoleModel
<div class="tab-pane" id="tab_1_2">
@using (Html.BeginForm("UsersForRole", "Role", FormMethod.Post, new { }))
{
@Html.ValidationSummary(true)
<!-- BEGIN DUAL SELECT-->
@Html.ListBoxFor(m => m.UsersNotInRole, new SelectList(Model.UsersNotInRole), new {@style = "width: 75%; height: 300px;"})
@Html.ListBoxFor(m => m.Users, new SelectList(Model.Users), new {@style = "width: 75%; height: 300px;"})
<input type="submit" value="Submit" class="btn" />
}
</div>
기본적으로 두 개의 컬렉션이 필요합니다. 간단하게하기 위해 하나의 목록 상자에만 집중할 수 있습니다 (다른 목록 상자에도 동일한 개념). model.Users를 사용하면 기본적으로 목록 상자를 채우는 'Users'속성이 있습니다. 그러나 선택 항목을 저장하려면 다른 컬렉션 (예 : SelectedUsers)이 필요합니다. 그런 다음 귀하의 관점에서
@Html.ListBoxFor(m => m.SelectedUsers , new SelectList(Model.Users), new {@style = "width: 75%; height: 300px;"})
게시 작업 결과에서 사용자 대신 SelectedUsers를 _roleService.AssignUsersToRole에 전달해야합니다.
이 유튜브 비디오 는 당신을 도울 것입니다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다