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

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

下面实现用户组浏览。

首先还是打开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. printf的特殊用法

    printf的特殊用法:对于m.n的格式可以用如下方法表示 前边的 *   定义的是总的宽度,后边的 * 定义的是输出的个数.分别对应外面的参数m和n .这种方法的好处是可以在语句之外对参数m和n赋值 ...

  2. Salesforce入门学习介绍

    大家好,本人作为重庆德勤2016年的实习生,进公司实习后有幸接触到了Salesforce,通过一个多月的自学以及培训,准备和大家分享一下我的Salesforce学习之路. 一.什么是Salesforc ...

  3. echarts3 -arcgis echarts.js修改

     在echarts.js中修改修改 clone 方法    其中 source instance of Array 修改为Object.prototype.toString.call(source)  ...

  4. jQuery的4种事件绑定方法

    jQuery中提供了四种绑定事件的方法,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off: 一.on()方法(首选方法) ...

  5. [LintCode] Climbing Stairs 爬梯子问题

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  6. pythonchallenge 解谜 Level 2

    好吧,赶紧贴一下. #-*- coding:utf-8 -*- #代码版本均为python 3.5.1 #Level 2 import re file = open("Level 2.txt ...

  7. android 之httpclient方式提交数据

    HttpClient: 今天实战下httpclient请求网络json数据,解析json数据返回信息,显示在textview, 起因:学校查询饭卡余额,每次都要访问校园网(内网),才可以查询,然后才是 ...

  8. 安卓工具箱:color of Style

    <?xml version="1.0" encoding="utf-8"?> <resources> <color name=&q ...

  9. 安装jdk

    检查已安装jdk,如果有,先删除 rpm -qa|grep java rpm -e --nodeps filename 从oracle官方网站下载jdk安装包:jdk-8u111-linux-x64. ...

  10. 【Hello CC.NET】CC.NET 实现自动化集成

    一.背景 公司的某一金融项目包含 12 个子系统,新需求一般按分支来开发,测完后合并到主干发布.开发团队需要同时维护开发环境.测试环境.模拟环境(主干).目前面临最大的两个问题: 1.子系统太多,每次 ...