MVC4做网站后台:用户管理 ——用户组
用户管理这块包含用户和用户组两部分。
用户组包括浏览 用户组列表,添加、修改、删除用户组等。按照前面思路系统是依据用户组来判断用户权限的,用户组的最主要目的是划分权限。权限这块以后单独在做。
下面实现用户组浏览。
首先还是打开Home/Header.cshtml,在<nav>添加代码
<a class="navbutton" href="javascript:void(0)" data-title="用户管理" data-west="@Url.Action("Menu", "User")" data-center="@Url.Action("Center", "User")"> <img src="~/Areas/Admin/Content/images/folder.png" /> 用户管理</a>
下面添加用户控制器UserController,命名空间Ninesky.Areas.Admin.Controllers
添加Menu action
/// <summary> /// 菜单 /// </summary> /// <returns>局部视图</returns> public ActionResult Menu() { return PartialView(); }
右键添加视图
<div id="westmenu" class="easyui-accordion"> <div title="用户" class="leftsidebar"> <ul> <li>@Html.ActionLink("用户列表", "List", "User", null, new { @class = "westmenuitem" })</li> </ul> </div> <div title="用户组" class="leftsidebar"> <ul> <li>@Html.ActionLink("添加用户组", "Add", "UserGroup", null, new { @class = "westmenuitem" })</li> <li>@Html.ActionLink("用户组列表", "List", "UserGroup", null, new { @class = "westmenuitem" })</li> </ul> </div> </div> <script type="text/javascript"> WestMenu(); </script>
完成看效果
然后添加用户组控制器UserGroupController,命名空间:Ninesky.Areas.Admin.Controllers。
先做一些前期准备工作。InterfaceUserGroup,命名空间Ninesky.Repository,代码如下:
using Ninesky.Models; using System.Linq; namespace Ninesky.Repository { /// <summary> /// 用户组接口 /// <remarks> /// 版本v.10 /// 创建:2013.12.21 /// </remarks> /// </summary> interface InterfaceUserGroup { /// <summary> /// 查找用户组 /// </summary> /// <returns>所有栏目列表</returns> IQueryable<UserGroup> Find(); /// <summary> /// 查找用户组 /// </summary> /// <param name="groupId">UserGroupId</param> /// <returns>用户组</returns> UserGroup Find(int groupId); } }
然后添加UserGroupRepository继承自InterfaceUserGroup
using Ninesky.Models; using System.Linq; namespace Ninesky.Repository { public class UserGroupRepository:InterfaceUserGroup { protected NineskyContext nContext = new NineskyContext(); public IQueryable<UserGroup> Find() { return nContext.UserGroups; } public UserGroup Find(int gropuId) { return nContext.UserGroups.SingleOrDefault(ug => ug.UserGroupId == gropuId); } } }
再添加InterfaceUserGroup接口,命名空间:Ninesky.Areas.Admin.Repository继承自 Ninesky.Repository.InterfaceUserGroup
namespace Ninesky.Areas.Admin.Repository { /// <summary> /// 后台用户组接口 /// <remarks> /// 版本v.10 /// 创建:2013.12.21 /// 修改:2013.12.22 /// </remarks> /// </summary> interface InterfaceUserGroup : Ninesky.Repository.InterfaceUserGroup { /// <summary> /// 添加用户组 /// </summary> /// <param name="userGroup">用户组</param> /// <returns>是否成功</returns> bool Add(UserGroup userGroup); /// <summary> /// 删除用户组 /// </summary> /// <param name="userGroup">用户组Id</param> /// <returns>是否成功</returns> bool Delete(UserGroup userGroup); /// <summary> /// 修改用户组 /// </summary> /// <param name="userGroup">用户组</param> /// <returns>是否成功</returns> bool Modify(UserGroup userGroup); } }
再添加UserGroupRepository类命名空间:Ninesky.Areas.Admin.Repository,继承自Ninesky.Repository.UserGroupRepository和InterfaceUserGroup
using Ninesky.Models; namespace Ninesky.Areas.Admin.Repository { /// <summary> /// 用户组接口实现 /// <remarks> /// 版本v.10 /// 创建:2013.12.21 /// 修改:2013.12.23 /// </remarks> /// </summary> public class UserGroupRepository:Ninesky.Repository.UserGroupRepository,InterfaceUserGroup { public bool Add(UserGroup userGroup) { nContext.UserGroups.Add(userGroup); return nContext.SaveChanges() > 0; } public bool Delete(UserGroup userGroup) { nContext.UserGroups.Attach(userGroup); nContext.Entry<UserGroup>(userGroup).State = System.Data.EntityState.Deleted; return nContext.SaveChanges() > 0; } public bool Modify(UserGroup userGroup) { nContext.UserGroups.Attach(userGroup); nContext.Entry<UserGroup>(userGroup).State = System.Data.EntityState.Modified; return nContext.SaveChanges() > 0; } } }
现在正式做界面,在UserGroupController控制器中添加List action
/// <summary> /// 用户组列表 /// </summary> /// <returns>分部视图</returns> public ActionResult List() { return PartialView(); }
这个action没有提供任何数据。列表数据在采用ajax方式获取。再写个提供数据的action
/// <summary> /// 用户列表【Json】 /// </summary> /// <returns>Json类型</returns> public ActionResult ListJson() { return Json(iUserGroup.Find()); }
右键添加视图
<div class="c_navbar">后台管理 >> 用户组管理</div> <div class="fs_wapper"> <div class="header"></div> <div> <table class="easyui-datagrid" data-options="url:'@Url.Action("ListJson", "UserGroup")',fitColumns:true,singleSelect:true,onDblClickRow:function(){SetCenter('@Url.Content("~/Admin/UserGroup/Index")/'+($(this).datagrid('getSelected').UserGroupId));}"> <thead> <tr> <th data-options="field:'Name'">名称</th> <th data-options="field:'Type'">类型</th> <th data-options="field:'Description'">描述</th> </tr> </thead> </table> </div> </div>
完工后的样子。