ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(3)
接下来完成用户、角色的增删查改,以及用户角色、权限的设置
对用户表、角色表做了一些扩展如下【可以更加自己需要增减字段】
相应的M_UserProfile.cs、M_Roles.cs进行扩展
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Web; namespace MVCSystem.Web.Models { [Table("UserProfile")] public class M_UserProfile { [Key] [Display(Name = "ID")] public int UserId { get; set; } [Display(Name = "用户名")] [StringLength(250)] public string UserName { get; set; } [Display(Name = "邮件地址")] [StringLength(250)] public string Email { get; set; } [Display(Name = "真实姓名")] [StringLength(250)] public string RealName { get; set; } [Display(Name = "状态")] public int State { get; set; } } }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Web; namespace MVCSystem.Web.Models { [Table("webpages_Roles")] public class M_Roles { public M_Roles() { T_Members = new List<M_Membership>(); T_PermissionsInRoles = new List<M_PermissionsInRoles>(); } [Key] [Display(Name = "ID")] public int RoleId { get; set; } [Display(Name = "名称")] [StringLength(256)] public string RoleName { get; set; } [Display(Name = "状态")] public int State { get; set; } public ICollection<M_Membership> T_Members { get; set; } [ForeignKey("RoleId")] public ICollection<M_PermissionsInRoles> T_PermissionsInRoles { set; get; } } }
接下来编写控制器以及视图的代码
UsersController.cs
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web.Mvc; using System.Web.Security; using MVCSystem.Web.Common; using MVCSystem.Web.Filters; using MVCSystem.Web.Models; using WebMatrix.WebData; namespace MVCSystem.Web.Areas.Admin.Controllers { [InitializeSimpleMembership] public class UsersController : BaseController { // // GET: /Admin/Users/ /// <summary> /// 获取数据列表 /// </summary> /// <returns></returns> public ActionResult Index() { return View(); } public JsonResult GetList(GridPager pager) { var aList = db.DB_UserProfiles.ToList(); aList = aList.OrderByDescending(a => a.UserId).ToList(); var json = new { results = aList.Count, rows = aList.Select(a => new { UserId = a.UserId, UserName = a.UserName, UserEmail = a.Email, RealName = a.RealName, State = (a.State==1)?"启用":"禁用", UserRole=getRoleName(a.UserId), CZ = "<a href='javascript:;' onclick='SetRole(" + a.UserId + ")' id='SetRole'>角色设置</a><a href='/Admin/Users/UserProfilesEdit/" + a.UserId + "' id='Edit'>编辑</a><a href='javascript:;' onclick='DeleteShow(" + a.UserId + ")' id='Delete'>删除</a>" }).Skip((pager.pageIndex) * pager.limit).Take(pager.limit).ToArray() }; return Json(json, JsonRequestBehavior.AllowGet); } private string getRoleName(int UsId) { var gg = (from a in db.DB_UsersInRoles join b in db.DB_Roles on a.RoleId equals b.RoleId group new { a, b } by new { a.UserId, b.RoleName } into kk select new { userId = kk.Key.UserId, roleName = kk.Key.RoleName }).ToList(); var getRoleNameStr = String.Join("、", gg.Where(d => d.userId == UsId).Select(e => e.roleName).ToArray()); return getRoleNameStr; } /// <summary> /// 删除数据操作 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpPost] public JsonResult UserProfilesDelete(int id) { if (id > 0) { var aList = db.DB_UserProfiles.Find(id); db.DB_UserProfiles.Remove(aList); db.SaveChanges(); return Json(1, JsonRequestBehavior.AllowGet); } else { return Json(0, JsonRequestBehavior.AllowGet); } } /// <summary> /// 编辑数据操作 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult UserProfilesEdit(int id) { var aList = db.DB_UserProfiles.Find(id); return View(aList); } [HttpPost] public ActionResult UserProfilesEdit(int id, FormCollection collection) { var aList = db.DB_UserProfiles.Find(id); if (TryUpdateModel(aList)) { aList.State =(collection.Get("State")=="1")?1:0; db.SaveChanges(); return Content("<script>alert('编辑成功!');window.location = '/admin/Users/';</script>"); } else { return View(aList); } } /// <summary> /// 添加数据操作 /// </summary> /// <returns></returns> public ActionResult UserProfilesAdd() { ViewBag.roleList = GetRoleSelectList(); return View(); } [HttpPost] public ActionResult UserProfilesAdd(FormCollection collection, string[] roles) { if (ModelState.IsValid) { string userName = collection.Get("UserName"); string password = collection.Get("Password"); string email = collection.Get("Email"); string realName = collection.Get("RealName"); int state = (collection.Get("State")=="1")?1:0; if (db.DB_UserProfiles.SingleOrDefault(e => e.UserName == userName) == null) { WebSecurity.CreateUserAndAccount(userName, password); if (roles != null) { foreach (var roleName in roles) { Roles.AddUserToRole(userName, roleName); } } M_UserProfile user = db.DB_UserProfiles.Single(e => e.UserName == userName); user.Email = email; user.State = state; user.RealName = realName; db.SaveChanges(); return Content("<script>alert('添加成功!');window.location = '/admin/Users/';</script>"); } else { ViewBag.roleList = GetRoleSelectList(); ViewBag.MrrTip = "用户名已存在!"; } } return View(); } /// <summary> /// 角色设置 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult UserProfilesSetRole(int id) { var uList = db.DB_UserProfiles.Find(id); var roleU = db.DB_UsersInRoles.Where(u => u.UserId == id).ToList(); var roleR = db.DB_Roles.ToList(); var str = new StringBuilder(); str.Append("<div class='checkboxlist'>"); foreach (var rs in db.DB_Roles) { str.Append("<span style='padding-left:10px;'>" + rs.RoleName + "</span>"); string strCK = ""; foreach (var ru in roleU) { if (ru.RoleId == rs.RoleId) { strCK = "checked='checked'"; } } str.Append("<input type='checkbox'" + strCK + " value='" + rs.RoleName + "' name='roles'/>"); } str.Append("</div>"); ViewBag.roleList = str; return View(uList); } private string GetRoleSelectList() { var str = new StringBuilder(); str.Append("<div class='checkboxlist'>"); foreach (var role in db.DB_Roles) { str.Append("<span style='padding-left:10px;'>" + role.RoleName + "</span>"); str.Append("<input type='checkbox' value='" + role.RoleName + "' name='roles' />"); } str.Append("</div>"); return str.ToString(); } /// <summary> /// 更改角色 /// </summary> /// <param name="id"></param> /// <returns></returns> public JsonResult SetRole(string id) { int userId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[0]); string roleName = id.Split(new string[] { "," }, StringSplitOptions.None)[1]; using (MVCSystemContext db = new MVCSystemContext()) { M_UserProfile user = db.DB_UserProfiles.Single(e => e.UserId == userId); Roles.AddUserToRole(user.UserName, roleName); } JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return result; } /// <summary> /// 删除角色 /// </summary> /// <param name="id"></param> /// <returns></returns> public JsonResult RemoveRole(string id) { int userId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[0]); string roleName = id.Split(new string[] { "," }, StringSplitOptions.None)[1]; using (MVCSystemContext db = new MVCSystemContext()) { M_UserProfile user = db.DB_UserProfiles.Single(e => e.UserId == userId); Roles.RemoveUserFromRole(user.UserName, roleName); } JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return result; } /// <summary> /// 释放已使用过且不再需要使用的组件 /// </summary> /// <param name="disposing"></param> protected override void Dispose(bool disposing) { db.Dispose(); base.Dispose(disposing); } } }
RolesController.cs
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web.Mvc; using MVCSystem.Web.Common; using MVCSystem.Web.Filters; using MVCSystem.Web.Models; namespace MVCSystem.Web.Areas.Admin.Controllers { [InitializeSimpleMembership] public class RolesController : BaseController { // // GET: /Admin/Roles/ /// <summary> /// 数据列表 /// </summary> /// <returns></returns> public ActionResult Index() { return View(); } public JsonResult GetList(GridPager pager) { var aList = db.DB_Roles.ToList(); aList = aList.OrderByDescending(a => a.RoleId).ToList(); var json = new { results = aList.Count, rows = aList.Select(a => new { RoleID = a.RoleId, RoleName = a.RoleName, State = (a.State == 1) ? "启用" : "禁用", perName = getPerName(a.RoleId), CZ = "<a href='javascript:;' onclick='SetPermission(" + a.RoleId + ")' id='SetPermission'>权限设置</a><a href='javascript:;' onclick='RolesEdit(" + a.RoleId + ")' id='Edit'>编辑</a><a href='javascript:;' onclick='DeleteShow(" + a.RoleId + ")' id='Delete'>删除</a>" }).Skip((pager.pageIndex) * pager.limit).Take(pager.limit).ToArray() }; return Json(json, JsonRequestBehavior.AllowGet); } private string getPerName(int id) { var gg = (from a in db.DB_PermissionsInRoles join b in db.DB_Permission on a.PermissionId equals b.PermissionId group new { a.RoleId, b.PermissionName, a.PermissionId } by new { a.RoleId, b.PermissionName, a.PermissionId } into dd select new { RoleId = dd.Key.RoleId, perName = dd.Key.PermissionName, }).ToList(); var perNameStr = String.Join("、", gg.Where(a => a.RoleId == id).Select(b => b.perName).ToArray()); return perNameStr; } /// <summary> /// 删除数据操作 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpPost] public JsonResult RolesDelete(int id) { if (id > 0) { var aList = db.DB_Roles.Find(id); db.DB_Roles.Remove(aList); db.SaveChanges(); return Json(1, JsonRequestBehavior.AllowGet); } else { return Json(0, JsonRequestBehavior.AllowGet); } } /// <summary> /// 修改角色 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult RolesEdit(int id) { var rList = db.DB_Roles.Find(id); return View(rList); } [HttpPost] public ActionResult RolesEdit(int id, FormCollection collection) { var rList = db.DB_Roles.Find(id); if (TryUpdateModel(rList)) { rList.State = (collection.Get("State") == "1") ? 1 : 0; db.SaveChanges(); return Content("<script>alert('编辑成功!');parent.location.reload();</script>"); } else { return View(rList); } } /// <summary> /// 添加角色 /// </summary> /// <returns></returns> public ActionResult RolesAdd() { ViewBag.permissionList = GetPermissionSelectList(); return View(); } [HttpPost] public ActionResult RolesAdd(M_Roles role,FormCollection collection, string[] permissions) { if (ModelState.IsValid) { if (db.DB_Roles.SingleOrDefault(e => e.RoleName == role.RoleName) == null) { role.State = (collection.Get("State") == "1") ? 1 : 0; M_Roles currentRole = db.DB_Roles.Add(role); db.SaveChanges(); if (permissions != null) { foreach (var permissionId in permissions) { M_PermissionsInRoles pir = new M_PermissionsInRoles(); pir.RoleId = currentRole.RoleId; pir.PermissionId = int.Parse(permissionId); db.DB_PermissionsInRoles.Add(pir); db.SaveChanges(); } } return Content("<script>alert('添加成功!');parent.location.reload();</script>"); } else { ViewBag.permissionList = GetPermissionSelectList(); TempData["ErrorMessage"] = "角色名称已存在"; } } return View(role); } /// <summary> /// 获取权限列表 /// </summary> /// <returns></returns> private string GetPermissionSelectList() { var str = new StringBuilder(); str.Append("<div class='checkboxlist'>"); foreach (var role in db.DB_Permission) { str.Append("<span style='padding-left:10px;'>" + role.PermissionName + "</span>"); str.Append("<input type='checkbox' value='" + role.PermissionId + "' name='permissions'/>"); } str.Append("</div>"); return str.ToString(); } /// <summary> /// 设置角色权限 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult RolesSetPermission(int id) { var permissionsInRoles = db.DB_PermissionsInRoles.Where(r => r.RoleId == id).ToList(); var permission = db.DB_Permission.ToList(); var str = new StringBuilder(); str.Append("<div class='checkboxlist'>"); foreach (var per in permission) { str.Append("<span style='padding-left:10px;'>" + per.PermissionName + "</span>"); string strCK = ""; foreach (var perR in permissionsInRoles) { if (per.PermissionId == perR.PermissionId) { strCK = "checked='checked'"; } } str.Append("<input type='checkbox'" + strCK + " value='" + per.PermissionId + "' name='roles' />"); } str.Append("</div>"); ViewBag.permissionList = str; ViewBag.RoleId = id; var rList = db.DB_Roles.Find(id); return View(rList); } /// <summary> /// 更改角色权限 /// </summary> /// <param name="id"></param> /// <returns></returns> public JsonResult SetPermission(string id) { int roleId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[0]); int permissionId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[1]); using (MVCSystemContext db = new MVCSystemContext()) { M_PermissionsInRoles pir = new M_PermissionsInRoles(); pir.RoleId = roleId; pir.PermissionId = permissionId; db.DB_PermissionsInRoles.Add(pir); db.SaveChanges(); } JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return result; } /// <summary> /// 移除角色权限 /// </summary> /// <param name="id"></param> /// <returns></returns> public JsonResult RemovePermission(string id) { int roleId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[0]); int permissionId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[1]); using (MVCSystemContext db = new MVCSystemContext()) { M_PermissionsInRoles pir = db.DB_PermissionsInRoles.Single(e => e.PermissionId == permissionId && e.RoleId == roleId); db.DB_PermissionsInRoles.Remove(pir); db.SaveChanges(); } JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return result; } } }
视图Users文件下的页面
Index.cshtml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@using MVCSystem.Web; @{ ViewBag.Title = "Index"; Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml"; } <form class="form-inline definewidth m20" action="index.html" method="get"> 用户名称: <input type="text" name="username" id="username"class="abc input-default" placeholder="" value=""> <button type="submit" class="btn btn-primary">查询</button> <a href="/Admin/Users/UserProfilesAdd/" class="btn btn-success" id="addnew">新增用户</a> </form> <div id="gridList" style=" width:96%;margin:10px auto;"> </div> <div id="windDlog" class="hidden"> </div> <script type="text/javascript"> BUI.use(['bui/grid', 'bui/data'], function (Grid, Data) { var Grid = Grid, Store = Data.Store, columns = [ { title: '用户名', dataIndex: 'UserName', width: 200 }, { title: '邮箱', dataIndex: 'UserEmail', width: 200 }, { title: '真实姓名', dataIndex: 'RealName', width: 200 }, { title: '状态', dataIndex: 'State', width: 100 }, { title: '用户角色', dataIndex: 'UserRole', width: 200 }, { title: '操作', dataIndex: 'CZ', width: 200 } ]; var store = new Store({ url: '/Admin/Users/GetList', autoLoad: true, //自动加载数据 pageSize: 3 // 配置分页数目 }), grid = new Grid.Grid({ render: '#gridList', columns: columns, loadMask: true, //加载数据时显示屏蔽层 store: store, // 底部工具栏 bbar: { // pagingBar:表明包含分页栏 pagingBar: true } }); grid.render(); }); function DeleteShow(UserId) { BUI.use('bui/overlay',function(overlay){ BUI.Message.Show({ msg : '你确定要删除吗?', icon : 'question', buttons : [ { text:'确定', elCls : 'button button-primary', handler : function(){ $.post("/Admin/Users/UserProfilesDelete/" + UserId + "", function (data) { location.reload(); if (data == 1) { BUI.Message.Show({ msg: '删除成功', icon: 'success', buttons: [], autoHide: true, autoHideDelay: 1000 }); } else { BUI.Message.Show({ msg: '删除失败', icon: 'error', buttons: [], autoHide: true, autoHideDelay: 1000 }); } }, "json"); } }, { text:'取消', elCls : 'button', handler : function(){ this.close(); } } ] }) }) } function SetRole(userId){ $("#windDlog").html("<iframe width='100%' height='98%' frameborder='0'' src='/Admin/Users/UserProfilesSetRole/" + userId + "'></iframe>"); BUI.use(['bui/overlay','bui/form'],function(Overlay,Form){ var dialog = new Overlay.Dialog({ title: '角色设置', width: 250, height: 200, //配置DOM容器的编号 contentId: 'windDlog', mask: false, buttons: [ { text: '确定', elCls: 'button button-primary', handler: function () { location.reload(); this.close(); } } ], }); dialog.show(); }) } </script>
UserProfilesAdd.cshtml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@model MVCSystem.Web.Areas.Admin.Models.AM_UserProfileViewModel @{ ViewBag.Title = "UserProfilesAdd"; Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml"; } <h2>@ViewBag.MrrTip</h2> @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <table class="table table-bordered table-hover definewidth m10"> <tr> <td width="10%" class="tableleft">登录名</td> <td> @Html.EditorFor(model => model.UserName) @Html.ValidationMessageFor(model => model.UserName)</td> </tr> <tr> <td width="10%" class="tableleft">密码</td> <td> @Html.EditorFor(model => model.Password) @Html.ValidationMessageFor(model => model.Password)</td> </tr> <tr> <td class="tableleft">真实姓名</td> <td> @Html.EditorFor(model => model.RealName) @Html.ValidationMessageFor(model => model.RealName)</td> </tr> <tr> <td class="tableleft">邮箱</td> <td> @Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)</td> </tr> <tr> <td class="tableleft">状态</td> <td> <span><input type="radio" name="State" value="1" checked="checked"/> 启用</span> <span><input type="radio" name="State" value="0" /> 禁用</span> </td> </tr> <tr> <td class="tableleft">角色</td> <td> @Html.Raw(ViewBag.roleList) </td> </tr> <tr> <td class="tableleft"></td> <td> <button type="submit" class="btn btn-primary">保存</button> <a href="/admin/Users/" class="btn btn-success" name="backid" id="backid">返回列表</a> </td> </tr> </table> }
UserProfilesEdit.cshtml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@model MVCSystem.Web.Models.M_UserProfile @{ ViewBag.Title = "UserProfilesEdit"; Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml"; } @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) @Html.HiddenFor(model => model.UserId) <table class="table table-bordered table-hover definewidth m10"> <tr> <td width="10%" class="tableleft">登录名</td> <td> @Html.EditorFor(model => model.UserName) @Html.ValidationMessageFor(model => model.UserName)</td> </tr> <tr> <td class="tableleft">真实姓名</td> <td> @Html.EditorFor(model => model.RealName) @Html.ValidationMessageFor(model => model.RealName)</td> </tr> <tr> <td class="tableleft">邮箱</td> <td> @Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)</td> </tr> <tr> <td class="tableleft">状态</td> <td> @if(Model.State==1){ <span><input type="radio" name="State" value="1" checked="checked"/> 启用</span> <span><input type="radio" name="State" value="0" /> 禁用</span> } else{ <span><input type="radio" name="State" value="1"/> 启用</span> <span><input type="radio" name="State" value="0" checked="checked"/> 禁用</span> } </td> </tr> <tr> <td class="tableleft"></td> <td> <button type="submit" class="button button-primary">保存</button> <a href="/admin/Users/" class="btn btn-success" name="backid" id="backid">返回列表</a> </td> </tr> </table> }
UserProfilesSetRole.cshtml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@model MVCSystem.Web.Models.M_UserProfile @{ ViewBag.Title = "UserProfilesSetRole"; Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml"; } @using (Html.BeginForm()) { <input type="hidden" id="User_ID" value="@Model.UserId"/> <div class="row"> <div class="control-group span5"> <label class="control-label">角色设置:<span id="updateMessage"></span></label> <div class="controls"> @Html.Raw(ViewBag.roleList) </div> </div> </div> } <script type="text/javascript"> $(function () { $(".controls input").change(function () { var sUserId = $("#User_ID").val(); var value = sUserId + "," + $(this).val(); if ($(this).is(":checked")) { var url = "/Admin/Users/SetRole/" + value; } else { url = "/Admin/Users/RemoveRole/" + value; } var objUpdateMessage = $("#updateMessage"); $.getJSON(url, function (data) { if (objUpdateMessage.length > 0) { objUpdateMessage.fadeIn(); objUpdateMessage.css("color", "green"); objUpdateMessage.html("设置成功!"); objUpdateMessage.fadeOut("slow"); } }); }); }) </script>
视图Roles文件下的页面
Index.cshtml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@using MVCSystem.Web; @{ ViewBag.Title = "Index"; Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml"; } <form class="form-inline definewidth m20" action="index.html" method="get"> 角色名称: <input type="text" name="username" id="username"class="abc input-default" placeholder="" value=""> <button type="submit" class="btn btn-primary">查询</button> <button type="button" onclick="RolesAdd()" class="btn btn-success" id="addnew">新增角色</button> </form> <div id="gridList" style=" width:96%;margin:10px auto;"> </div> <div id="windDlog" class="hidden"> </div> <script type="text/javascript"> BUI.use(['bui/grid', 'bui/data'], function (Grid, Data) { var Grid = Grid, Store = Data.Store, columns = [ { title: '角色名称', dataIndex: 'RoleName', width: 200 }, { title: '权限', dataIndex: 'perName', width: 200 }, { title: '状态', dataIndex: 'State', width: 100 }, { title: '操作', dataIndex: 'CZ', width: 200 } ]; var store = new Store({ url: '/Admin/Roles/GetList', autoLoad: true, //自动加载数据 pageSize: 3 // 配置分页数目 }), grid = new Grid.Grid({ render: '#gridList', columns: columns, loadMask: true, //加载数据时显示屏蔽层 store: store, // 底部工具栏 bbar: { // pagingBar:表明包含分页栏 pagingBar: true } }); grid.render(); }); function DeleteShow(UserId) { BUI.use('bui/overlay',function(overlay){ BUI.Message.Show({ msg : '你确定要删除吗?', icon : 'question', buttons : [ { text:'确定', elCls : 'button button-primary', handler : function(){ $.post("/Admin/Roles/RolesDelete/" + UserId + "", function (data) { location.reload(); if (data == 1) { BUI.Message.Show({ msg: '删除成功', icon: 'success', buttons: [], autoHide: true, autoHideDelay: 1000 }); } else { BUI.Message.Show({ msg: '删除失败', icon: 'error', buttons: [], autoHide: true, autoHideDelay: 1000 }); } }, "json"); } }, { text:'取消', elCls : 'button', handler : function(){ this.close(); } } ] }) }) } function RolesEdit(rolesId) { $("#windDlog").html("<iframe width='100%' height='98%' frameborder='0'' src='/Admin/Roles/RolesEdit/" + rolesId + "'></iframe>"); BUI.use(['bui/overlay', 'bui/form'], function (Overlay, Form) { var dialog = new Overlay.Dialog({ title: '编辑角色', width: 300, height: 200, //配置DOM容器的编号 contentId: 'windDlog', mask: false, buttons: [], }); dialog.show(); }) } function RolesAdd() { $("#windDlog").html("<iframe width='100%' height='98%' frameborder='0'' src='/Admin/Roles/RolesAdd/'></iframe>"); BUI.use(['bui/overlay', 'bui/form'], function (Overlay, Form) { var dialog = new Overlay.Dialog({ title: '添加角色', width: 500, height: 250, //配置DOM容器的编号 contentId: 'windDlog', mask: false, buttons: [], }); dialog.show(); }) } function SetPermission(rolesId) { $("#windDlog").html("<iframe width='100%' height='98%' frameborder='0'' src='/Admin/Roles/RolesSetPermission/" + rolesId + "'></iframe>"); BUI.use(['bui/overlay','bui/form'],function(Overlay,Form){ var dialog = new Overlay.Dialog({ title: '权限设置', width: 500, height: 200, //配置DOM容器的编号 contentId: 'windDlog', mask: false, buttons: [ { text: '确定', elCls: 'button button-primary', handler: function () { location.reload(); this.close(); } } ], }); dialog.show(); }) } </script>
RolesAdd.cshtml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@model MVCSystem.Web.Models.M_Roles @{ ViewBag.Title = "RolesEdit"; Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml"; } @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <div class="row"> <div class="control-group span6"> <label class="control-label L">角色名称:</label> <div class="controls L"> @Html.EditorFor(model => model.RoleName) @Html.ValidationMessageFor(model => model.RoleName) </div> </div> </div> <div class="row"> <div class="control-group span6"> <label class="control-label L">权限设置:</label> <div class="controls L"> @Html.Raw(ViewBag.permissionList) </div> </div> </div> <div class="row"> <div class="control-group span6"> <label class="control-label L">状态:</label> <div class="controls L"> <span><input type="radio" name="State" value="1" checked="checked"/> 启用</span> <span><input type="radio" name="State" value="0" /> 禁用</span> </div> </div> </div> <div><button type="submit" class="btn btn-primary">保存</button></div> }
RolesEdit.cshtml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@model MVCSystem.Web.Models.M_Roles @{ ViewBag.Title = "RolesEdit"; Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml"; } @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <div class="row"> <div class="control-group span4"> <label class="control-label L">角色名称:</label> <div class="controls L"> @Html.EditorFor(model => model.RoleName) @Html.ValidationMessageFor(model => model.RoleName) </div> </div> </div> <div class="row"> <div class="control-group span4"> <label class="control-label L">状态:</label> <div class="controls L"> @if(Model.State==1){ <span><input type="radio" name="State" value="1" checked="checked"/> 启用</span> <span><input type="radio" name="State" value="0" /> 禁用</span> } else{ <span><input type="radio" name="State" value="1"/> 启用</span> <span><input type="radio" name="State" value="0" checked="checked"/> 禁用</span> } </div> </div> </div> <div><button type="submit" class="btn btn-primary">保存</button></div> }
RolesSetPermission.cshtml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@model MVCSystem.Web.Models.M_Roles @{ ViewBag.Title = "RolesSetPermission"; Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml"; } @using (Html.BeginForm()) { <input type="hidden" id="RoleId" value="@Model.RoleId"/> <div class="row"> <div class="control-group span6"> <label class="control-label">权限设置:<span id="updateMessage"></span></label> <div class="controls"> @Html.Raw(ViewBag.permissionList) </div> </div> </div> } <script type="text/javascript"> $(function () { $(".controls input").change(function () { var sUserId = $("#RoleId").val(); var value = sUserId + "," + $(this).val(); if ($(this).is(":checked")) { var url = "/Admin/Roles/SetPermission/" + value; } else { url = "/Admin/Roles/RemovePermission/" + value; } var objUpdateMessage = $("#updateMessage"); $.getJSON(url, function (data) { if (objUpdateMessage.length > 0) { objUpdateMessage.fadeIn(); objUpdateMessage.css("color", "green"); objUpdateMessage.html("设置成功!"); objUpdateMessage.fadeOut("slow"); } }); }); }) </script>
最终运行效果如下
编辑用户:
新增用户:
用户角色:
编辑角色:
新增角色:
权限设置:
源码下载:http://www.yealuo.com/Sccnn/Detail?KeyValue=2f926407-f80b-4bff-a729-949a53efed7b
作者:boyzi007
出处:http://www.cnblogs.com/boyzi/
QQ:470797533
QQ交流群:364307742
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。