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

1、接口InterfaceUser 命名空间Ninesky.Repository

功能查询用户,修改用户资料(这里考虑到用户登录也需要修改登录日期,所以放着吧)。

using Ninesky.Models;

namespace Ninesky.Repository
{
/// <summary>
/// 用户接口
/// <remarks>
/// 版本:v1.0
/// 创建:2013.12.24
/// 修改:2014.1.11
/// </remarks>
/// </summary>
interface InterfaceUser
{
/// <summary>
/// 查找用户
/// </summary>
/// <param name="userId">用户Id</param>
/// <returns>用户信息</returns>
User Find(int userId); /// <summary>
/// 修改用户信息
/// </summary>
/// <param name="user">用户信息</param>
/// <returns>布尔值</returns>
bool Modify(User user);
}
}

先后写具体实现代码类。

using Ninesky.Models;
using System.Linq; namespace Ninesky.Repository
{
public class UserRepository
{
protected NineskyContext nineskyContext = new NineskyContext();
public User Find(int userId)
{
return nineskyContext.Users.SingleOrDefault(u => u.UserId == userId);
} public bool Modify(User user)
{
nineskyContext.Users.Attach(user);
nineskyContext.Entry<User>(user).State = System.Data.EntityState.Modified;
return nineskyContext.SaveChanges() > 0;
}
}

2、添加后台接口InterfaceUser 继承自Ninesky.Repository.InterfaceUser,命名空间为Ninesky.Areas.Admin.Repository。

这里Find方法返回的数据提供给datagrid使用由于,要用到分页所以返回数据必须包含总记录数因此构造了DatagridPagingViewModle这个视图模型。

using Ninesky.Models;

namespace Ninesky.Areas.Admin.Repository
{
/// <summary>
/// 用户接口
/// <remarks>
/// 版本:v1.0
/// 创建:2013.12.24
/// 修改:2014.1.11
/// </remarks>
/// </summary>
interface InterfaceUser:Ninesky.Repository.InterfaceUser
{
/// <summary>
/// 删除用户
/// </summary>
/// <param name="userId">用户Id</param>
/// <returns>布尔值</returns>
bool Del(int userId);
/// <summary>
/// 查找用户列表
/// </summary>
/// <param name="userName">用户名(可以为一部分)</param>
/// <param name="groupId">用户组。大于0时有效</param>
/// <param name="pageInde">当前页。和pageSize同时大于0时有效</param>
/// <param name="pageSize">每页记录数。和pageInde同时大于0时有效</param>
/// <returns>DatagridPagingViewModle类型的用户列表</returns>
DatagridPagingViewModle Find(string userName, int groupId, int pageInde, int pageSize);
}
}

实现的库类

using Ninesky.Models;
using System.Linq; namespace Ninesky.Areas.Admin.Repository
{
/// <summary>
/// 后台用户
/// 版本:v1.0
/// 创建:2014.1.8
/// 修改:2014.1.9
/// </summary>
public class UserRepository:Ninesky.Repository.UserRepository,InterfaceUser
{
public DatagridPagingViewModle Find(string userName, int groupId, int pageInde, int pageSize)
{
DatagridPagingViewModle _datagridPagingData = new DatagridPagingViewModle();
IQueryable<User> _users = nineskyContext.Users.OrderByDescending(u => u.RegTime);
if (!string.IsNullOrEmpty(userName)) _users = _users.Where(u => u.UserName.Contains(userName));
if (groupId > 0) _users = _users.Where(u => u.GroupId == groupId);
if (pageInde > 0 && pageSize > 0)
{
_datagridPagingData.total = _users.Count();
_datagridPagingData.rows = _users.Skip((pageInde - 1) * pageSize).Take(pageSize);
}
return _datagridPagingData;
} public bool Del(int userId)
{
var _user = new User { UserId = userId };
nineskyContext.Users.Attach(_user);
nineskyContext.Entry<User>(_user).State = System.Data.EntityState.Deleted;
return nineskyContext.SaveChanges() > 0;
}
}
}

3、控制器。由于在用户组部分添加了用户控制器,这里直接打开。UserController

添加List方法。

/// <summary>
/// 用户列表
/// </summary>
/// <returns>局部视图</returns>
public ActionResult List()
{
return PartialView();
}

这里继续使用datagrid 的ajax方式加载,还要添加ListJson函数用来返回json数据

/// <summary>
/// 用户列表Json
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="groupId">用户组</param>
/// <param name="page">页码</param>
/// <param name="rows">每页行数</param>
/// <returns>DatagridPagingViewModle的Json格式</returns>
public JsonResult ListJson(string userName, int groupId = 0, int page = 1, int rows = 20)
{
return Json(userRepository.Find(userName, groupId, page, rows));
}

OK。在List action上右键添加局部视图

<div class="c_navbar">后台管理 >> 用户管理</div>
<div class="fs_wapper">
<div class="header"></div>
<div>
<table id="userDataGrid" class="easyui-datagrid" data-options="url:'@Url.Action("ListJson", "User")',fitColumns:true,singleSelect:true,toolbar:'#toolbar',pagination:true,onDblClickRow:function(){SetCenter('@Url.Content("~/Admin/User/Index")/'+($(this).datagrid('getSelected').UserId));}">
<thead>
<tr>
<th data-options="field:'UserName'">用户名</th>
<th data-options="field:'GroupId',formatter: function(value,row,index){return Group(value);}">用户组</th>
<th data-options="field:'Email'">Email</th>
<th data-options="field:'QQ'">QQ号码</th>
<th data-options="field:'Tel'">电话号码</th>
<th data-options="field:'RegTime',formatter: function(value,row,index){return jsonDateFormat(value);}">注册时间</th>
<th data-options="field:'LastLoginTime',formatter: function(value,row,index){return jsonDateFormat(value);}">上次登录时间</th>
</tr>
</thead>
</table>
<div id="toolbar">
用户名:<input id="userName" type="text" style="width:60px; height:16px;" />
用户组:<input id="usergroup" class="easyui-combobox" data-options="textField:'Name',valueField:'UserGroupId',url:'@Url.Action("ListJson", "UserGroup")'" />
<a id="userSearch" class="easyui-linkbutton">查询</a>
</div> </div>
</div>
<script type="text/javascript">
var _groups;//用户组列表
$("#userSearch").click(function () {
$("#userDataGrid").datagrid('load', {
userName: $("#userName").val(),
groupId: $("#usergroup").combobox('getValue')
});
}); function Group(gid) {
var _name;
if (_groups == undefined) _groups = $("#usergroup").combobox('getData');
for (i = 0; i < $(_groups).size() ;i++)
{
if (_groups[i].UserGroupId == gid) {
_name = _groups[i].Name;
}
}
return _name;
}
</script>

这个与用户组的视图基本类似,预览下效果。

 

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

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

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

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

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

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

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

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

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

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

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

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

  6. linux用户管理-用户的基本操作

    目录 linux用户管理-用户的基本操作 用户相关的命令 linux用户管理-用户的基本操作 什么是用户 用户指能够正常登录linux或windows系统 区别 本质都是登录系统的,只不过Linux支 ...

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

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

  8. linux用户管理 用户和用户组信息

    用户管理配置文件 用户信息文件  /etc/passwd 密码文件 /etc/shadow 用户配置文件 /etc/login.defs /etc/default/useradd 新用户信息文件 /e ...

  9. linux用户管理 用户和用户组管理

    用户组的基本命令 groupadd [选项] [参数] -g 指定新建工作的id -r 创建系统工作组,系统工作组的ID小于500,非系统工作组大于500 -K 覆盖配置文件"/etc/lo ...

随机推荐

  1. gulp的基本使用

    gulp 了解 首先我们了解一下什么是gulp, gulp是前端自动化构建工具,在开发过程中很多重复的任务,我们都可以正确的使用gulp来完成,gulp基于nodejs,使用gulp可以做很多事情 例 ...

  2. PHP图形操作之生成图像验证码

    简单的验证码其实就是在图片中输出了几个字符,通过imagestring函数就能实现. 但是在处理上,为了使验证码更加的安全,防止其他程序自动识别,因此常常需要对验证码进行一些干扰处理,通常会采用绘制一 ...

  3. asp.net mvc添加多条数据到数据库

    mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点击添加按钮弹出一个框选择产品后直接添加到表单中,在表单可以自己更改产品的数量,以及一些信息.mvc表单提交的时候只 ...

  4. 搭建OpenStack,kvm环境准备

    一.KVM简介 KVM全称是kernel-based virtual machine(基于内核的虚拟机),是一个开源的系统虚拟化模块,基于硬件的完全虚拟化,不过需要硬件支持(如Intel VT技术或者 ...

  5. mysql远程连接命令

    mysql远程连接命令   一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u ...

  6. 微软发布TX(LINQ To Logs And Traces)

    微软开源技术公司于发布了Tx,这是一个Apache 2协议的开源项目,可以使用日志/跟踪文件辅助调试,以及创建实时监控和告警系统. 下面是几个引人关注的功能-- 允许在原始事件源上使用LINQ 允许在 ...

  7. Code First开发系列之数据库迁移

    返回<8天掌握EF的Code First开发>总目录 本篇目录 开启并运行迁移 使用迁移API 应用迁移 给已存在的数据库添加迁移 EF的其他功能 本章小结 自我测试 本系列的源码本人已托 ...

  8. Android知识杂记(四)

    1.完整退出activity的设计思路 1.1 封装一个基础activity类 public abstract class RootActivity extends FragmentActivity{ ...

  9. 玩转JavaScript OOP[2]——类的实现

    概述 当我们在谈论面向对象编程时,我们在谈论什么?我们首先谈论的是一些概念:对象.类.封装.继承.多态.对象和类是面向对象的基础,封装.继承和多态是面向对象编程的三大特性. JavaScript提供了 ...

  10. CoffeeScript实现Python装潢器

    在上篇Angular遇上CoffeeScript – NgComponent封装中,我们讲述了CoffeeScript这门小巧的语言,摒弃JavaScript中糟粕(“坑”)部分,并将JavaScri ...