为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.Net MVC C# 分配角色关闭复选框和用户列表

ASP.Net MVC C# 分配角色关闭复选框和用户列表

C#
莫回无 2022-11-22 15:21:38
我在保管箱中有我的管理员列表,在面板中有我的用户列表,其中包含他们的姓名和他们姓名的复选框。我的面板中有一个按钮,因此我可以将用户分配给管理员。我想知道如何在我的控制器中设置它,为用户分配一个角色并不难,但我不能 100% 确定这样做。这是我所拥有的。//我的观点        <div class="row">            @for(var i = 0; i < Model.lstUsers.Count(); i++)            {                <div class="col-md-4">                    <div>                        @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>            }        </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>      //Model                                                     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; }}public class AssignRolesModel{    public List<AdminModel> lstAdmins { get; set; }    [Required(ErrorMessage = "Choose Admin")]    public string UserId { get; set; }    public List<UserModel> lstUsers { get; set; }    public int? AssignToAdmin { get; set; }    public int? CreatedBy { get; set; }}   // Controller   have a [httppost] and bring my assignrolesmodel object into the controller 获取我拥有的用户列表,但我需要选中用户复选框并将其分配给管理员
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

这就是我目前想出的。它尚未 100% 完成,但我可以获得一个用户并将该用户分配给管理员,它肯定可以与 1 个用户一起使用,我必须测试多个用户。我会对我正在做的事情的任何输入或评论感兴趣。谢谢


    [HttpPost]

    [ValidateAntiForgeryToken]

    public ActionResult AssignAdmin(AssignRolesModel model)

    {

        try

        {

            if(model.lstUsers == null)

            {

                TempData["Error"] = "There are no Users to Assign Roles";

                model.lstUsers = UserList();

                model.lstAdmins = AdminList();

                return View(model);

            }


            var selectedUsersCount = (from user in model.lstUsers

                                      where user.SelectedUsers == true

                                      select user).Count();

            if(selectedUsersCount == 0)

            {

                TempData["Error"] = "You have not Selected any User to Assign Roles";

                model.lstAdmins = AdminList();

                model.lstUsers = UserList();

                return View(model);

            }


            if (ModelState.IsValid)

            {

                List<UserModel> users = new List<UserModel>();

                ApplicationUser au;

                var store = new UserStore<ApplicationUser>(context);

                var manager = new UserManager<ApplicationUser>(store);


                model.CreatedBy = 1;


                foreach(var u in model.lstUsers)

                {

                    if(u.SelectedUsers == true)

                    {

                        users.Add(u);

                    }

                }


                foreach(var u in users)

                {

                    au = context.Users.Where(x => x.Id.Equals(u.UserId,

                        StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();

                    manager.AddToRole(au.Id, "Admin");

                }


                TempData["Success"] = "Roles Assigned Successfully";

                return RedirectToAction("AssignAdmin");

            }

        }

        catch (Exception)

        {

            throw;

        }           


        return View();

    }


查看完整回答
反对 回复 2022-11-22
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号