学用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 的书写与组织形式,门槛极低,拿来即用.其外在极简,却又不失饱满的内在,体 ...
随机推荐
- DOM解析示例
收藏信息.xml <?xml version="1.0" encoding="GB2312" standalone="no"?> ...
- JS /JQuery 获取变量为数字时 容易出错 可能不是数字类型
Javascript内置函数,原型为parseInt ( String s , [ int radix ] ),用于解析一个字符串,并返回一个整数. var $prod_kucun=$(this).n ...
- asp.net 页面上的点击事件
asp.net 页面上 服务器端控件Button 有两个click事件如 <asp:Button ID="Button1" runat="server" ...
- 反编译apk时遇到的问题
第一次尝试反编译的时候遇到如下问题:Input file (ganzhou) was not found or was not readable 百度之后说是apktool版本2.0以上,编译命令变了 ...
- Python之路第一课Day9--随堂笔记之一(堡垒机实例以及数据库操作)未完待续....
一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: ...
- ArcGIS AddIN开发:如何调用ArcMap中的选择工作空间的窗体
示例代码如下: public static IWorkspaceName BrowseWorkspace(int hwnd,out IWorkspace ws) { IGxObjectFilterCo ...
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
设置或获取对象指定的文件名或路径. alert(window.location.pathname) 设置或获取整个 URL 为字符串. alert(window.location.href); 设置或 ...
- 利用GeoIP数据库及API进行地理定位查询
GeoIP数据库下载地址:http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz. 首先,在Max ...
- js 获取浏览器高度和宽度值(多浏览器)(转)
IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.d ...
- 安卓刷机--fastboot线刷
首先需要下载fastboot.exe,copy到system32文件夹下. 对于安卓系统的智能手机,同时按住开机键和音量减键,或手机连上电脑,输入adb reboot bootloader进入fast ...