用戶管理這塊包含用戶和用戶組兩部分。
用戶組包括瀏覽 用戶組列表,添加、修改、刪除用戶組等。按照前面思路系統是依據用戶組來判斷用戶權限的,用戶組的最主要目的是划分權限。權限這塊以后單獨在做。
下面實現用戶組瀏覽。
首先還是打開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>
完工后的樣子。