用户管理这块包含用户和用户组两部分。

用户组包括浏览 用户组列表,添加、修改、删除用户组等。按照前面思路系统是依据用户组来判断用户权限的,用户组的最主要目的是划分权限。权限这块以后单独在做。

下面实现用户组浏览。

首先还是打开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() > ;
} public bool Delete(UserGroup userGroup)
{
nContext.UserGroups.Attach(userGroup);
nContext.Entry<UserGroup>(userGroup).State = System.Data.EntityState.Deleted;
return nContext.SaveChanges() > ;
} public bool Modify(UserGroup userGroup)
{
nContext.UserGroups.Attach(userGroup);
nContext.Entry<UserGroup>(userGroup).State = System.Data.EntityState.Modified;
return nContext.SaveChanges() > ;
}
}
}

现在正式做界面,在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>

完工后的样子。

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

MVC4做网站后台:用户管理 ——用户组的更多相关文章

  1. MVC4做网站后台:用户管理 ——用户组 2、查看、修改、删除用户组

    查看用户组资料和修改用户组资料结合在一起,在用户组列表双击查看用户组资料,修改资料点保存可以保存用户组,点删除可以删除用户组. 先在UserGroupController中添加 action publ ...

  2. MVC4做网站后台:用户管理 ——用户组 1、添加用户组

    打开控制器UserGroupController 添加Add action /// <summary> /// 添加用户组 /// </summary> /// <ret ...

  3. MVC4做网站后台:用户管理 ——用户组补充

    上次做完发现存在点问题. 1.是类型显示的为数字(如下图): 2.是不能根据类型进行查询. 首先做查询.easyui-datagrid可以添加toolbar. 在datagrid的data-optio ...

  4. MVC4做网站后台:用户管理 —用户

    这块进行用户管理,可以浏览.查询已注册的用户,修改用户资料,删除用户等.没有做添加用户,不知是否必要.列表页还是使用easyui的datagrid.这个思路跟用户组的方式差不多. 1.接口Interf ...

  5. MVC4做网站后台:模块管理1、修改模块信息

    网站可能会包含一些模块:像文章.产品.图片.留言等. 栏目模块主要实现功能,启用或禁用模块,模块权限设置,模块上传设置等. 权限设置和上传设置以后专门考虑,先来显示或禁用模块. 1.在顶部导航栏添加管 ...

  6. MVC4做网站后台:栏目管理2、修改栏目

    接上节添加栏目. 修改栏目与添加栏目非常相似,主要区别在于先向视图传递要修改栏目的model.另外在保存时比添加栏目验证要更多一些. 1.要验证父栏目不能是其本身: 2.父栏目不能是其子栏目: 3.父 ...

  7. MVC4做网站后台:栏目管理1、添加栏目

    把栏目添加删除跟前台混在一起结构清晰,现在有了后台管理的区域就把后台管理相关的代码分开. 要实现功能: 1.添加栏目 2.删除栏目 3.修改栏目信息 -- 一.开始 1.添加 接口InterfaceC ...

  8. MVC4做网站后台:栏目管理1、添加栏目-续

    栏目类型跟原来一样分为常规栏目.单页栏目和外部链接.根据栏目类型的不同要隐藏相应的表单和验证(服务器端验证).另外一个是父栏目必须是常规栏目才行,easyui-combotree要用到树形json数据 ...

  9. MVC4做网站后台:栏目管理3、删除栏目与左侧列表菜单

    一.左侧列表菜单 打开视图Menu.cshtml,增加部分见红框 在category中添加脚本 //栏目菜单加载完毕函数 function CategoryMenu_Ready() { $('#cat ...

随机推荐

  1. [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)

    再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...

  2. PHP通过加锁实现并发情况下抢码实现

    需求:抢码功能 要求: 1.特定时间段才开放抢码: 2.每个时间段放开的码是有限的: 3.每个码不允许重复: 实现: 1.在不考虑并发的情况下实现: function get_code($len){ ...

  3. POJ 1160 题解

    Post Office Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18835   Accepted: 10158 Des ...

  4. CruiseControl.Net <buildpublisher>部署到远程机器报错的解决办法

    CruiseControl.Net ,使用<buildpublisher>将编译后的程序部署到远程机器时,使用以下配置 <buildpublisher> <sourceD ...

  5. WIN32 窗口封装类实现

    CQWnd.h窗口类定义 // QWnd.h: interface for the CQWnd class. // ////////////////////////////////////////// ...

  6. 从Erlang进程看协程思想

    从Erlang进程看协程思想 多核慢慢火了以后,协程类编程也开始越来越火了.比较有代表性的有Go的goroutine.Erlang的Erlang进程.Scala的actor.windows下的fibr ...

  7. [LintCode] Intersection of Two Linked Lists 求两个链表的交点

    Write a program to find the node at which the intersection of two singly linked lists begins. Notice ...

  8. 关于兼容IE的一些策略

    --css 盒子模型下的 box-sizing 属性,只兼容到ie8: -moz-box-sizing: border-box; -webkit-box-sizing: border-box; -o- ...

  9. 用c#创建支持多语言的WinForm应用程序

    实现多语言的方法可能有使用资源文件,或者配置xml两种方法吧.没时间研究过多,学习了一下使用资源文件的方法,成功了. 在.net2.0 中,m$ 为我们提供了一种简单方便的方法, 使用资源文件 1.新 ...

  10. myeclipse导入项目出现jquery错误(有红叉)

    今天导入了一个项目,但是进去之后jquery出现了红叉,如图(事实上在我没调好之前两个jquery文件都有叉号) 怎么调呢?右键jquery文件,选择MyEclipse->Exclude Fro ...