一、管理员列表

1、首先【AdministratorController】中添加返回分部视图的public PartialViewResult Index()

/// <summary>
/// 管理员列表
/// </summary>
/// <returns></returns>
[AdminAuthorize]
public PartialViewResult Index()
{
return PartialView(); ;
}

2、在添加public JsonResult List()返回管理员列表数据

/// <summary>
/// 管理员列表
/// </summary>
/// <returns></returns>
[AdminAuthorize]
public JsonResult List()
{
return Json(adminRsy.Find());
}

3、为Index()添加局部视图。视图中利用easyui的datagrid进行管理

@Scripts.Render("~/Areas/Admin/Scripts/Administrator.js")
<div class="c_navbar">网站设置 >> 管理员管理</div>
<div id="admin_wapper" class="fs_wapper">
<div class="header">管理员设置 </div>
<table id="admin_datagrid" class="easyui-datagrid" data-options="url:'@Url.Action("List", "Administrator")',singleSelect:true,toolbar:'#toolbar'">
<thead>
<tr>
<th data-options="field:'AdministratorId'">ID</th>
<th data-options="field:'IsPreset'">系统账号</th>
<th data-options="field:'AdminName'">用户名</th>
<th data-options="field:'Name'">姓名</th>
<th data-options="field:'Email'">电子邮件</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton" iconcls="icon-add" plain="true" onclick="AdminAddDlgShow()">添加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconcls="icon-edit" plain="true" onclick="AdminDelRow('@Url.Action("Delete", "Administrator")')">删除</a>
</div>
<div id="adminadddlg" class="easyui-dialog" title="添加管理员" style="width:620px;height:290px;" data-options="iconCls:'icon-save',resizable:true,modal:true,closed:true,href:'@Url.Action("Add", "Administrator")'"></div>
</div>

4、管理员添加

首先添加一个显示添加视图的action  public PartialViewResult Add()

/// <summary>
/// 添加管理员
/// </summary>
/// <returns></returns>
[AdminAuthorize]
public PartialViewResult Add()
{
return PartialView();
}

再添加一个提交后的处理action public JsonResult Add(Administrator admin)

[AdminAuthorize]
[HttpPost]
public JsonResult Add(Administrator admin)
{
JsonData _jdata = new JsonData();
if (ModelState.IsValid)
{
if (adminRsy.Find(admin.AdminName) != null)
{
_jdata.Success = false;
_jdata.Message = "管理员名称已存在!";
}
else
{
admin.IsPreset = false;
if (adminRsy.Add(admin))
{
_jdata.Success = true;
_jdata.Message = "保存成功√!";
}
else
{
_jdata.Success = false;
_jdata.Message = "数据未能保存到数据库!";
}
}
}
else
{
var _eItem = ModelState.Where(m => m.Value.Errors.Count > 0);//获取验证失败的项
foreach (var i in _eItem)
{
_jdata.MessageLsit.Add(i.Key, "验证失败!");
}
}
return Json(_jdata);
}

为Add()添加局部视图

@model Ninesky.Areas.Admin.Models.Administrator
<div class="fs_wapper">
@using (Html.BeginForm("Add", "Administrator", FormMethod.Post, new { id = "adminadd_form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<table>
<tr>
<th>@Html.LabelFor(model => model.AdminName)</th>
<td>@Html.EasyuiInput(model => model.AdminName, new { @class = "easyui-validatebox" })
@Html.DisplayDescriptionFor(model => model.AdminName)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.PassWord)</th>
<td>@Html.EasyuiInput(model => model.PassWord, new { @class = "easyui-validatebox",type="password" })
@Html.DisplayDescriptionFor(model => model.PassWord)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.Name)</th>
<td>@Html.EasyuiInput(model => model.Name, new { @class = "easyui-validatebox" })
@Html.DisplayDescriptionFor(model => model.Name)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.Email)</th>
<td>@Html.EasyuiInput(model => model.Email, new { @class = "easyui-validatebox" })
@Html.DisplayDescriptionFor(model => model.Email)</td>
</tr>
</table>
}
</div>
<div style="margin:20px;">
<a href="javascript:void(0)" class="easyui-linkbutton" iconcls="icon-ok" onclick="AdminAddSave()">保存</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconcls="icon-cancel" onclick="AdminAddDlgClose()">关闭</a>
</div>

打开Administrator.js 写点击保存和点击关闭的js函数

//添加管理员保存
function AdminAddSave() { $('#adminadd_form').form('submit', {
success: function (data) {
var rt = jQuery.parseJSON(data);
if (rt.Success) {
$.messager.alert("保存成功", rt.Message,"" ,function () {
$("#adminadddlg").dialog("close");
$('#admin_datagrid').datagrid("reload");
});
}
else {
var msg = "";
if (rt.MessageLsit != undefined) {
$.each(rt.MessageLsit, function (i, val) {
msg += "<li>" + i + ":" + val + "</li>";
});
}
if (msg != "") msg = rt.Message + "<br /> <p> 原因如下:" + "<ul>" + msg + "</ul></p>";
else msg = rt.Message;
$.messager.alert("保存失败", msg, "error");
}
}
});
} //关闭添加管理员窗口
function AdminAddDlgClose() {
$("#adminadddlg").dialog("close");
}

再添加一个显示添加管理员窗口的方法

//显示添加对话框
function AdminAddDlgShow()
{
$("#adminadddlg").dialog("open");
$("#adminadddlg").dialog("refresh");
}

5、删除管理员

在控制器添加public JsonResult Delete(int Id)

 

/// <summary>
/// 删除管理员
/// </summary>
/// <param name="Id">管理员Id</param>
/// <returns></returns>
[AdminAuthorize]
[HttpPost]
public JsonResult Delete(int Id)
{
JsonData _jdata = new JsonData();
var _admin = adminRsy.Find(Id);
if (_admin == null)
{
_jdata.Success = false;
_jdata.Message = "Id为: " + Id + " 的管理员不存在!";
}
else if (_admin.IsPreset)
{
_jdata.Success = false;
_jdata.Message = "不能删除系统预置管理员账号!";
}
else
{
if (adminRsy.Delete(Id))
{
_jdata.Success = true;
_jdata.Message = "删除成功√";
}
else
{
_jdata.Success = false;
_jdata.Message = "删除失败!";
}
}
return Json(_jdata); }

在Administrator.js 中增加 删除管理员的客户端js方法

//删除管理员
function AdminDelRow(url) {
var row = $('#admin_datagrid').datagrid('getSelected');
if (row) {
$.messager.confirm('确认', '你确定要删除此管理员', function (r) {
if (r) {
$.post(url, { Id: row.AdministratorId }, function (data) {
if (data.Success) {
$.messager.alert("删除成功", data.Msg, "", function () { $("#admin_datagrid").datagrid("reload"); });
}
else $.messager.alert("错误", data.Msg, "error");
});
}
});
}
}

大功告成!

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

MVC4做网站六后台管理:6.1.4管理员列表、添加及删除的更多相关文章

  1. 学用MVC4做网站六后台管理:6.1.3管理员修改密码

    6.1.3修改密码 需要两个action.一个是点击修改密码的链接要显示修改密码的分部视图(对话框形式):另一个是提交的处理action. 1.打开[AdministratorController]添 ...

  2. 学用MVC4做网站六后台管理:6.1.1管理员登录、6.1.2退出

    1.管理员登录 在6.1中已添加控制器[AdministratorController] 在控制器中添加[Login()]action,用来显示登录页面 /// <summary> /// ...

  3. 学用MVC4做网站六:后台管理(续)

    关于后台的说明: 后台将会用easyui + ajax模式. 这里涉及两个问题,一个是使用easyui如何在前台验证模型的问题,另一个是ajax提交后返回数据. 一.Easyui验证 前台验证采用ea ...

  4. MVC4做网站六后台管理:6.2网站信息设置

    用来实现网站标题.名称.关键字.描述.版权等信息的设置. 模型字段: 网站的设置信息前后台都要用到,所以要把模型方式Ninesky/Models文件夹中,代码如下: ///////////////// ...

  5. 学用MVC4做网站六后台管理:6.1管理员(续)

    接6.1 首先在~/Areas/Admin/Models文件夹添加管理员模型Administrator.cs using System.ComponentModel.DataAnnotations; ...

  6. discuz管理员登录进入后台管理马上跳转到登录界面

    昨天尝试了一下这个discuz论坛,感觉还可以.今天刚刚用管理员账户进入后台管理,准备改一改界面熟悉一下,过不了10秒钟.老是马上就退出来了.我想起来了,昨天是在阿里云服务器上面直接登录这个管理员账号 ...

  7. rabbitmq之后台管理和用户设置(三)

    前言 前面介绍了erlang环境的安装和rabbitmq环境安装,接下来介绍rabbitmq的web管理和用户设置. 启用后台管理插件 通过后台管理插件我们可以动态监控mq的流量,创建用户,队列等. ...

  8. Day5作业,商城+ATM机+后台管理

    晚来了....东西太多,需要写的blog内容太多,re讲的渣渣,不明白为什么oldboy经常换老师,吐槽下吧,真心不爱了.... github地址在这:https://github.com/ccorz ...

  9. django的admin后台管理

    Admin后台管理 要进入admin后台管理首先要创建管理员账户 createsuperuser 其中密码要大于8位 使用之前要到应用下的admin.py中注册要管理的模型表 from django. ...

随机推荐

  1. 转:界面之下:还原真实的 MVC、MVP、MVVM 模式

    前言 做客户端开发.前端开发对MVC.MVP.MVVM这些名词不了解也应该大致听过,都是为了解决图形界面应用程序复杂性管理问题而产生的应用架构模式.网上很多文章关于这方面的讨论比较杂乱,各种MV*模式 ...

  2. 整理 PHPstorm实用个人配置,修改调整个性化快捷键,修改使用phpstorm创建的模板的默认注释:

    对你有助请点赞,请顶------送人玫瑰,手留余香! 1:58 2016/3/12 整理PHPstorm实用个人配置,修改调整个性化快捷键,修改使用phpstorm创建的模板的默认注释: PHPsto ...

  3. UBUNTU 16.04 编译 OPENJDK8

    参考了几篇文章,和错误查询,最后总结如下 一.下载 我比较倾向于使用mercurial来获取源代码,虽然你得挑网络稳定的时候更新,但是易更新. 从官网查找一下,可以通过以下步骤完成源代码的下载 1. ...

  4. C#详解format函数,各种格式化

    一.String Format for Double Digits after decimal point This example formats double to string with fix ...

  5. 使用 Graphviz 画拓扑图

    使用 Graphviz 画拓扑图 0)前述 本文着重讲一下 Graphviz 的风格控制,基础一些的就不在这里讲啦. graphviz 的主页是http://www.graphviz.org/. Gr ...

  6. GDB十分钟教程

    原文链接: http://blog.csdn.net/liigo/archive/2006/01/17/582231.aspx 本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程 ...

  7. ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)

    前言 在上篇文章中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序,本篇主要是怎么样为我们在 Linux 或者 macOs 中部署的 dotnet 程序创建一个守护进程 ...

  8. SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测

    之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了.windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向 ...

  9. Javascript基础回顾 之(一) 类型

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  10. 为什么google bazel构建工具流行不起来

    作者Jack47 转载请保留作者和原文出处 之前博主写了系列文章Google软件构建工具Bazel原理及使用方法介绍.最近使用了一段时间后,觉得这个东西不是一种通用的构建工具,很难对接到情况复杂的大的 ...