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>

下面添加用户控制器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做网站后台:用户管理 ——用户组的更多相关文章
- MVC4做网站后台:用户管理 ——用户组 2、查看、修改、删除用户组
查看用户组资料和修改用户组资料结合在一起,在用户组列表双击查看用户组资料,修改资料点保存可以保存用户组,点删除可以删除用户组. 先在UserGroupController中添加 action publ ...
- MVC4做网站后台:用户管理 ——用户组 1、添加用户组
打开控制器UserGroupController 添加Add action /// <summary> /// 添加用户组 /// </summary> /// <ret ...
- MVC4做网站后台:用户管理 ——用户组补充
上次做完发现存在点问题. 1.是类型显示的为数字(如下图): 2.是不能根据类型进行查询. 首先做查询.easyui-datagrid可以添加toolbar. 在datagrid的data-optio ...
- MVC4做网站后台:用户管理 —用户
这块进行用户管理,可以浏览.查询已注册的用户,修改用户资料,删除用户等.没有做添加用户,不知是否必要.列表页还是使用easyui的datagrid.这个思路跟用户组的方式差不多. 1.接口Interf ...
- MVC4做网站后台:模块管理1、修改模块信息
网站可能会包含一些模块:像文章.产品.图片.留言等. 栏目模块主要实现功能,启用或禁用模块,模块权限设置,模块上传设置等. 权限设置和上传设置以后专门考虑,先来显示或禁用模块. 1.在顶部导航栏添加管 ...
- MVC4做网站后台:栏目管理2、修改栏目
接上节添加栏目. 修改栏目与添加栏目非常相似,主要区别在于先向视图传递要修改栏目的model.另外在保存时比添加栏目验证要更多一些. 1.要验证父栏目不能是其本身: 2.父栏目不能是其子栏目: 3.父 ...
- MVC4做网站后台:栏目管理1、添加栏目
把栏目添加删除跟前台混在一起结构清晰,现在有了后台管理的区域就把后台管理相关的代码分开. 要实现功能: 1.添加栏目 2.删除栏目 3.修改栏目信息 -- 一.开始 1.添加 接口InterfaceC ...
- MVC4做网站后台:栏目管理1、添加栏目-续
栏目类型跟原来一样分为常规栏目.单页栏目和外部链接.根据栏目类型的不同要隐藏相应的表单和验证(服务器端验证).另外一个是父栏目必须是常规栏目才行,easyui-combotree要用到树形json数据 ...
- MVC4做网站后台:栏目管理3、删除栏目与左侧列表菜单
一.左侧列表菜单 打开视图Menu.cshtml,增加部分见红框 在category中添加脚本 //栏目菜单加载完毕函数 function CategoryMenu_Ready() { $('#cat ...
随机推荐
- printf的特殊用法
printf的特殊用法:对于m.n的格式可以用如下方法表示 前边的 * 定义的是总的宽度,后边的 * 定义的是输出的个数.分别对应外面的参数m和n .这种方法的好处是可以在语句之外对参数m和n赋值 ...
- Salesforce入门学习介绍
大家好,本人作为重庆德勤2016年的实习生,进公司实习后有幸接触到了Salesforce,通过一个多月的自学以及培训,准备和大家分享一下我的Salesforce学习之路. 一.什么是Salesforc ...
- echarts3 -arcgis echarts.js修改
在echarts.js中修改修改 clone 方法 其中 source instance of Array 修改为Object.prototype.toString.call(source) ...
- jQuery的4种事件绑定方法
jQuery中提供了四种绑定事件的方法,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off: 一.on()方法(首选方法) ...
- [LintCode] Climbing Stairs 爬梯子问题
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- pythonchallenge 解谜 Level 2
好吧,赶紧贴一下. #-*- coding:utf-8 -*- #代码版本均为python 3.5.1 #Level 2 import re file = open("Level 2.txt ...
- android 之httpclient方式提交数据
HttpClient: 今天实战下httpclient请求网络json数据,解析json数据返回信息,显示在textview, 起因:学校查询饭卡余额,每次都要访问校园网(内网),才可以查询,然后才是 ...
- 安卓工具箱:color of Style
<?xml version="1.0" encoding="utf-8"?> <resources> <color name=&q ...
- 安装jdk
检查已安装jdk,如果有,先删除 rpm -qa|grep java rpm -e --nodeps filename 从oracle官方网站下载jdk安装包:jdk-8u111-linux-x64. ...
- 【Hello CC.NET】CC.NET 实现自动化集成
一.背景 公司的某一金融项目包含 12 个子系统,新需求一般按分支来开发,测完后合并到主干发布.开发团队需要同时维护开发环境.测试环境.模拟环境(主干).目前面临最大的两个问题: 1.子系统太多,每次 ...