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

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贡献1436条经验 获得超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 关注
  • 9 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信