zoukankan      html  css  js  c++  java
  • ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(3)

    接下来完成用户、角色的增删查改,以及用户角色、权限的设置

    对用户表、角色表做了一些扩展如下【可以更加自己需要增减字段】

    相应的M_UserProfile.cs、M_Roles.cs进行扩展

    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; }
        }
    }
    View Code
    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; }
           
        }
    }
    View Code

    接下来编写控制器以及视图的代码

    UsersController.cs

    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);
             }
        }
    }
    View Code

    RolesController.cs

    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;
            }
        }
    }
    View Code

    视图Users文件下的页面

    Index.cshtml

    @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="">&nbsp;&nbsp;  
        <button type="submit" class="btn btn-primary">查询</button>&nbsp;&nbsp; <a href="/Admin/Users/UserProfilesAdd/" class="btn btn-success" id="addnew">新增用户</a>
    </form>
    <div id="gridList"  style=" 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',  200 },
                { title: '邮箱', dataIndex: 'UserEmail',  200 },
                { title: '真实姓名', dataIndex: 'RealName',  200 },
                { title: '状态', dataIndex: 'State',  100 },
                { title: '用户角色', dataIndex: 'UserRole',  200 },
                { title: '操作', dataIndex: 'CZ',  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: '角色设置',
                         250,
                        height: 200,
                        //配置DOM容器的编号
                        contentId: 'windDlog',
                        mask: false,
                        buttons: [
                          {
                              text: '确定',
                              elCls: 'button button-primary',
                              handler: function () {
                                  location.reload();
                                  this.close();
                              }
                          }
                        ],
                    });
                    dialog.show();
                })
            }
        </script>
    View Code

    UserProfilesAdd.cshtml

    @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>
                     &nbsp;&nbsp;<a href="/admin/Users/" class="btn btn-success" name="backid" id="backid">返回列表</a>
                </td>
            </tr>
        </table>
       
    }
    View Code

    UserProfilesEdit.cshtml

    @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>
                     &nbsp;&nbsp;<a href="/admin/Users/" class="btn btn-success" name="backid" id="backid">返回列表</a>
                </td>
            </tr>
        </table>
       
    }
    View Code

    UserProfilesSetRole.cshtml

    @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>
    View Code

    视图Roles文件下的页面

    Index.cshtml

    @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="">&nbsp;&nbsp;  
        <button type="submit" class="btn btn-primary">查询</button>&nbsp;&nbsp; <button type="button" onclick="RolesAdd()" class="btn btn-success" id="addnew">新增角色</button>
    </form>
    <div id="gridList"  style=" 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',  200 },
                { title: '权限', dataIndex: 'perName',  200 },
                { title: '状态', dataIndex: 'State',  100 },
                { title: '操作', dataIndex: 'CZ',  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: '编辑角色',
                         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: '添加角色',
                         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: '权限设置',
                         500,
                        height: 200,
                        //配置DOM容器的编号
                        contentId: 'windDlog',
                        mask: false,
                        buttons: [
                          {
                              text: '确定',
                              elCls: 'button button-primary',
                              handler: function () {
                                  location.reload();
                                  this.close();
                              }
                          }
                        ],
                    });
                    dialog.show();
                })
            }
        </script>
    View Code

    RolesAdd.cshtml

    @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>
     } 
    View Code

    RolesEdit.cshtml

    @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>
     } 
    View Code

    RolesSetPermission.cshtml

    @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>
    View Code

    最终运行效果如下

    编辑用户:

    新增用户:

    用户角色:

    编辑角色:

    新增角色:

    权限设置:

    源码下载:http://www.yealuo.com/Sccnn/Detail?KeyValue=2f926407-f80b-4bff-a729-949a53efed7b

    作者:boyzi007

    出处:http://www.cnblogs.com/boyzi/

    QQ:470797533

    QQ交流群:364307742
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    浏览器事件.html
    奇数(11~99)四个一行输出.html
    JDBC系列教材 (十一)- 数据库连接池
    JDBC系列教材 (十)- 基于JDBC设计DAO的实例
    JDBC系列教材 (九)- 使用JDBC做一个ORM例子
    JDBC系列教材 (八)- 如何在JDBC中使用事务
    JDBC系列教材 (七)- 获取自增长id以及表的元数据
    JDBC系列教材 (六)- 中execute与executeUpdate的区别
    JDBC系列教材 (五)- 在JDBC中使用预编译Statement 以及它的优点
    JDBC系列教材 (四)- 在JDBC中使用ResultSet查询SQL语句
  • 原文地址:https://www.cnblogs.com/boyzi/p/5138483.html
Copyright © 2011-2022 走看看