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

需要两个action。一个是点击修改密码的链接要显示修改密码的分部视图(对话框形式);另一个是提交的处理action。
1、打开【AdministratorController】添加返回分部视图[ChangePassWord()]action
/// <summary>
/// 修改密码
/// </summary>
/// <returns></returns>
[AdminAuthorize]
public PartialViewResult ChangePassWord()
{
return PartialView();
}
添加视图
<div class="fs_wapper">
@using (Html.BeginForm("ChangePassWord", "Administrator", FormMethod.Post, new { id = "admincha_form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary() <table>
<tr>
<th>原密码</th>
<td>
<input id="oldPwd" name="oldPwd" type="password" class="easyui-validatebox" data-options="required:true,validType:['length[6,256]']" />
</td>
</tr>
<tr>
<th>新密码</th>
<td>
<input id="newPwd" name="newPwd" type="password" class="easyui-validatebox" data-options="required:true,validType:['length[6,256]']" />
</td>
</tr>
<tr>
<th>重复密码</th>
<td>
<input id="confirmPwd" name="confirmPwd" type="password" class="easyui-validatebox" validType="equalTo['#newPwd']" />
</td>
</tr>
</table>
}
</div>
<div style="margin:20px;">
<a href="javascript:void(0)" class="easyui-linkbutton" iconcls="icon-ok" onclick="AdminCPwdSave()">保存</a>
</div>
2、添加修改密码处理action[ChangePassWord(string oldPwd,string newPwd)],返回JsonData类型。
[AdminAuthorize]
[HttpPost]
public JsonResult ChangePassWord(string oldPwd,string newPwd)
{
JsonData _jdata = new JsonData();
if (ModelState.IsValid)
{
var _admin = AdministratorController.AdminInfo;
if (_admin == null)
{
_jdata.Success = false;
_jdata.Msg = "登录已超时,请重新登录!";
}
else if (Common.Sha256(oldPwd) != _admin.PassWord)
{
_jdata.Success = false;
_jdata.Msg = "原密码错误!";
}
else
{
_admin.PassWord = Common.Sha256(newPwd);
if (adminRsy.Modify(_admin))
{
_jdata.Success = true;
_jdata.Msg = "保存成功√!";
}
else
{
_jdata.Success = false;
_jdata.Msg = "数据未能保存到数据库!";
}
}
}
else
{
var _eItem = ModelState.Where(m => m.Value.Errors.Count > );
foreach (var i in _eItem)
{
_jdata.MsgLsit.Add(i.Key, "验证失败!");
}
}
return Json(_jdata);
}
3、打开Administrator.js添加两个函数,ShowChangePwdDlg(url)用户显示修改密码的对话框url就是对话框加载的视图url,AdminCPwdSave()用来进行提交的客户端处理。
//显示修改密码窗口
function ShowChangePwdDlg(url) {
$(document.body).append("<div id='cPwdDlg'></div>");
$('#cPwdDlg').dialog({
title: "修改密码",
width: ,
height: ,
closed: false,
cache: false,
href: url,
modal: true,
onClose: function () { $(this).dialog("destroy"); }
});
}
//修改密码保存
function AdminCPwdSave() {
$('#admincha_form').form('submit', {
success: function (data) { var rt = jQuery.parseJSON(data);
if (rt.Success) {
$.messager.alert("保存成功", rt.Msg, "", function () {
location.href = $("#btn_Logout").attr("href");
$("#cPwdDlg").dialog("destroy"); });
}
else {
var msg = "";
if (rt.MsgLsit != undefined) {
$.each(rt.MsgLsit, function (i, val) {
msg += "<li>" + i + ":" + val + "</li>";
});
}
if (msg != "") msg = rt.Msg + "<br /> <p> 原因如下:" + "<ul>" + msg + "</ul></p>";
else msg = rt.Msg;
$.messager.alert("保存失败", msg, "error");
}
}
});
}

待续!
学用MVC4做网站六后台管理:6.1.3管理员修改密码的更多相关文章
- 学用MVC4做网站六后台管理:6.1.1管理员登录、6.1.2退出
1.管理员登录 在6.1中已添加控制器[AdministratorController] 在控制器中添加[Login()]action,用来显示登录页面 /// <summary> /// ...
- 学用MVC4做网站六:后台管理(续)
关于后台的说明: 后台将会用easyui + ajax模式. 这里涉及两个问题,一个是使用easyui如何在前台验证模型的问题,另一个是ajax提交后返回数据. 一.Easyui验证 前台验证采用ea ...
- 学用MVC4做网站六后台管理:6.1管理员(续)
接6.1 首先在~/Areas/Admin/Models文件夹添加管理员模型Administrator.cs using System.ComponentModel.DataAnnotations; ...
- MVC4做网站六后台管理:6.1.4管理员列表、添加及删除
一.管理员列表 1.首先[AdministratorController]中添加返回分部视图的public PartialViewResult Index() /// <summary> ...
- MVC4做网站六后台管理:6.2网站信息设置
用来实现网站标题.名称.关键字.描述.版权等信息的设置. 模型字段: 网站的设置信息前后台都要用到,所以要把模型方式Ninesky/Models文件夹中,代码如下: ///////////////// ...
- 慕学在线网0.4_xadmin后台管理
admin是基于Django开发的后台管理框架,方便,快捷,而且简单: 而xadmin就相当于admin的升级版,更加强大. 1.安装xadmin(源码安装方式) 教程 PS: - 卸载pip安装的x ...
- 图形化SVN管理搭建 subversion edge自行修改密码
参考文章: https://blog.csdn.net/buyaore_wo/article/details/84313467 安装版本: Subversion Edge 5.2.3 (Linux 6 ...
- discuz管理员登录进入后台管理马上跳转到登录界面
昨天尝试了一下这个discuz论坛,感觉还可以.今天刚刚用管理员账户进入后台管理,准备改一改界面熟悉一下,过不了10秒钟.老是马上就退出来了.我想起来了,昨天是在阿里云服务器上面直接登录这个管理员账号 ...
- LayUI后台管理与综合示例
一.LayUI介绍 layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用.其外在极简,却又不失饱满的内在,体 ...
随机推荐
- The World's Only Advanced Operating System
The World's Only Advanced Operating System
- 原生js封装二级城市下拉列表
闲的蛋疼,封装了个二级城市下拉 先保证html里有 <select id="province" size=1 > </select> <select ...
- SecurityContextHolder.getContext().getAuthentication() return null
<security:http> <security:intercept-url pattern="/web/**" access="IS_AUTHENT ...
- nodejs 单元测试
之前项目开发因为改进度,基本都是粗放式开发.为了提高代码质量,单元测试是必不可少的. 针对restful api ,用supertest 测试框架.针对nodejs,引入mocha 和should 可 ...
- iOS Block理解
以前看到Block觉得也没什么,不就是类似函数的东西,这东西在C#里就是委托,在Java里就是块,有什么稀奇的.但看到一点进阶的内容后,发现这个东西确实有用. 所以做下总结. 一.块的基本用法 块的语 ...
- Python之路Day21-自定义分页和cookie
本节知识点概要 1.URL 2.views - 请求其他信息 - 装饰器 3.Templates - 母版 - 自定义 4.Models操作 5.分页(自定义分页) 6.cookie 7.sessio ...
- unity3d中获得物体的size
以size的x方向为例 1:gameObject.renderer.bounds.size.x;//这个值的结果真实反应出有MeshRenderer这个组件的模型的尺寸.不需要再乘以localScal ...
- canvas 学习
<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" ...
- [LeetCode] All solution
比较全的leetcode答案集合: kamyu104/LeetCode grandyang
- PHP的FastCGI
CGI全称是“通用网关接口”(Common Gateway Interface), 它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据. CGI描述了客户端和这个程序之间传输数据的一 ...