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

你可能感兴趣的:(mvc)