Hi bigbear,
Check this example. Now please take its reference and correct your code.
Model
public class AssignRolesModel
{
public List<AdminModel> lstAdmins { get; set; }
public List<UserModel> lstUsers { get; set; }
public string AdminId { get; set; }
public string UserId { get; set; }
public int? CreatedBy { get; set; }
}
public class AdminModel
{
public string UserId { get; set; }
public string Name { get; set; }
}
public class UserModel
{
public string UserId { get; set; }
public string Name { get; set; }
public bool SelectedUsers { get; set; }
public string AssignToAdmin { get; set; }
}
Controller
public class HomeController : Controller
{
// GET: /Home/
public ActionResult Index()
{
AssignRolesModel model = new AssignRolesModel();
model.lstAdmins = AdminList();
model.lstUsers = UserList();
return View(model);
}
[HttpPost]
public ActionResult Assign(AssignRolesModel role)
{
string adminName = AdminList().Where(x => x.UserId == role.AdminId).Select(x => x.Name).FirstOrDefault();
foreach (var user in role.lstUsers)
{
string userId = user.UserId;
string name = user.Name;
bool selected = user.SelectedUsers;
string assignToAdmin = selected ? adminName : "";
// Code for Update record in database.
}
role.lstAdmins = AdminList();
return View("Index", role);
}
// Get Admin List From Database.
public List<AdminModel> AdminList()
{
List<AdminModel> lstAdmins = new List<AdminModel>();
lstAdmins.Add(new AdminModel { UserId = "1", Name = "Admin 1" });
lstAdmins.Add(new AdminModel { UserId = "2", Name = "Admin 2" });
lstAdmins.Add(new AdminModel { UserId = "3", Name = "Admin 3" });
return lstAdmins;
}
// Get User List From Database.
public List<UserModel> UserList()
{
List<UserModel> lstUsers = new List<UserModel>();
lstUsers.Add(new UserModel { UserId = "1", Name = "User 1", SelectedUsers = true });
lstUsers.Add(new UserModel { UserId = "2", Name = "User 2", SelectedUsers = false });
lstUsers.Add(new UserModel { UserId = "3", Name = "User 3", SelectedUsers = false });
lstUsers.Add(new UserModel { UserId = "4", Name = "User 4", SelectedUsers = true });
return lstUsers;
}
}
View
<body>
<%using (Html.BeginForm("Assign", "Home", FormMethod.Post))
{%>
<div class="panel-body">
<div class="row">
<div class="col-md-4">
Admin:<%:Html.DropDownListFor(a => a.AdminId, new SelectList(Model.lstAdmins, "UserId", "Name"),new { @class = "form-control" })%>
</div>
</div>
<br />
<div class="row">
<%for (var i = 0; i < Model.lstUsers.Count(); i++) {%>
<div class="col-md-1">
<%:Html.CheckBoxFor(u => Model.lstUsers[i].SelectedUsers) %>
<label>
<%:Html.DisplayFor(u => Model.lstUsers[i].Name)%>
<%:Html.HiddenFor(u => Model.lstUsers[i].UserId)%>
<%:Html.HiddenFor(u => Model.lstUsers[i].Name)%>
</label>
</div>
<%} %>
</div>
<br />
<div class="row">
<div class="form-group">
<div class="col-md-offset-0 col-md-12">
<input type="submit" value="Assign Role" class="btn btn-success" />
<%:Html.ActionLink("Cancel", "Dashboard", "SuperAdmin", null, new { @class = "btn btn-danger" }) %>
</div>
</div>
</div>
</div>
<%} %>
</body>
Screenshot