zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    认识EXTJS
    Ext面向对象开发实践(turn)
    20多个在线操作系统(webOS)一览
    一个成功的博客必须知道的80个博客工具
    163.com免费邮箱背后的传奇故事
    Android ListView的滚动条始终显示并且滚动条样式自定义
    eclipse不格式化注释
    Android横屏竖屏切换
    喝茶的好处
    Android设置Gridview中的内容不滚动,然后控件中的内容随便添加的效果。
  • 原文地址:https://www.cnblogs.com/mzwhj/p/3528336.html
Copyright © 2011-2022 走看看