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 ...
随机推荐
- 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world
2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world thrift是什么 最简单解释 thrift是用来帮助各个编程语 ...
- 阿里云ECS(Centos)开启X11的步骤
阿里云ECS(Centos)开启X11的步骤 1.修改sshd_config X11Forwarding yes 2.yum -y install xorg-x11-xauth xorg-x11-ut ...
- javaFx:使用弹出对话框 Alert
javaFx8 自带的对话框非常好用,类似的使用方式如下: /** * 弹出一个通用的确定对话框 * @param p_header 对话框的信息标题 * @param p_message 对话框的信 ...
- API,框架,组件
API 是什么,API 就是通过提供方便使用的接口来执行它实现的功能. 用一个手电筒来作比喻: 手电筒的按钮就是接口,按下按钮就是它的方便的使用方式,发光就是它的功能,在这里我们可以称这个手电筒是个 ...
- Windows下使用doxygen阅读和分析C/C++代码
Windows下使用doxygen阅读和分析C/C++代码 转自:http://blog.sina.com.cn/s/blog_63d902570100gwk6.html 虽然使用各种IDE或者Sou ...
- 搭建ssh后的简化
对于SSh框架的简化,我们可以从下面几个方面来剖析: 1.实体类entity 2.注入 3.类注解 下面,我来一一为大家讲解.ps:写的不好还请多多指教,欢迎大家"来找茬". 关于 ...
- Web服务网站故障分析常用的命令
1.查看TCP连接状态netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn netstat -n | awk ‘/^tcp/ {++S[$NF]}; ...
- django 在字符串[str(list)]中精确查找
1.问题描述 1.1表结构 1.2问题 ref_list为id列表的字符串,需要从ref_list中找出包含指定id的数据(eg id=8).如果实用models.objects.filter(ref ...
- List、Map、Set三个接口,存取元素时,各有什么特点?
List 以特定次序来持有元素,可有重复元素:Set 无法拥有重复元素,内部排序(无序):Map 保存key-value值,value可多值.
- Insert or Merge && Insertion or Heap Sort
原题连接:https://pta.patest.cn/pta/test/1342/exam/4/question/27102 题目如下: According to Wikipedia: Inserti ...