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>

image

下面添加用户控制器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>

完成看效果

image

然后添加用户组控制器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>

image

完工后的样子。

 

代码http://pan.baidu.com/s/1qWLeoos

posted @ 2014-01-21 14:32  洞庭夕照  阅读(3645)  评论(1编辑  收藏  举报