asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(四)—— session传递登录人信息显示+用户注销
前面的学习,已经做好了简单的登录和主页,涉及了三层软件架构,mvc,easyui的layout、tree、tab、window,sqlite,动软代码自动生成。
下面完善一下登录跳转主页后,在south-layout底部显示登录人,与登录用户名保持一致;再做一个注销按钮,利用到easyui的linkbutton/menubutton。
1. 在后台判断是否登录时,Account控制器中定义了一个session,将登录人的信息保存在session["user"]中,
在(Home)Index中添加代码,c#代码用<% %>包围
<% UserManager.Model.UserDB user = Session["user"] as UserManager.Model.UserDB; %>
将底部的登录人的代码改为:
<div data-options="region:'south',border:false" style="height:20px;background:#ccc;padding:1px">当前登录人:<%=user.Name %></div>
显示效果如下:

2. 在north-layout即顶部添加easyui的linkbutton,添加注销功能
打开chm帮助文档,或demo
为(Home)Index添加代码:
<div data-options="region:'north',border:false" style="height:61px;background:#0660bb;">
<img src="/Content/Images/logo.png" style="float:left"/>
<div style="padding:10px;float:right;text-align:center">
<a href="#" class="easyui-linkbutton" data-options="plain:true">Home</a>
<a href="#" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-edit'">注销</a>
<a href="#" class="easyui-menubutton" data-options="menu:'#mm2',iconCls:'icon-help'">Help</a>
<a href="#" class="easyui-menubutton" data-options="menu:'#mm3'">About</a>
</div>
</div>
显示结果如下:

接下来为注销添加跳转功能
3. 在注销前,提示用户是否确认注销,利用easyui的messager
且确认注销前要销毁已创建的session
为(Home)Index的注销linkbutton添加事件:
<a href="#" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-edit'" onclick="LogoOff()">注销</a>
LogoOff()函数写在之前创建的Login.js中(所以记得为Home-Index添加login.js的样式)
Login.js完整代码如下(注意!在(Account/Index)和(Home/Index)里面都用到了Login.js里面的样式,需要添加<script>样式
<script src="../../Scripts/Common/Login.js" type="text/javascript"></script>
否则也无法显示,在遇到错误时也要勇于调试反复查找问题)
function Login() {
//alert("where");
var name = $("#name").val();
var pwd = $("#pwd").val();
//前台逻辑判断
if (name == '' || pwd == '') {
$("#showInfo").html("用户名或密码为空");
}
else {
//后台逻辑判断
$.post("/Account/DoLogin", { name: name, pwd: pwd },
function (data) {
//alert("Data Loaded: " + data);
if (data == "-1") {
$("#showInfo").html("用户名或密码为空");
}
else if (data == "-2") {
$("#showInfo").html("用户名或密码错误");
}
else {
$("#showInfo").html("登录");
window.location.href = "/Home/Index";
}
});
}
}
function LogoOff() {
$.messager.confirm('注销', '你确认要注销嘛?', function (r) {
if (r) {
//alert('confirmed: ' + r);
$.post("/Account/DoLoginOff",
function (data) {
if (data == "-1") {
$.messager.alert('Warning', '注销失败');
}
else {
alert('注销成功');
window.location.href = "/Account/Index";
}
});
}
});
}
至此,登录-跳转主页-点击主页内容显示tab-注销-返回登录页面,这个流程已经全部完成!大家需要的话也可以把代码打包分享。
asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(四)—— session传递登录人信息显示+用户注销的更多相关文章
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅—— 摘要
首次接触asp.net开发,希望把自己的学习之旅写下来,一方面做个知识归纳技术总结,另一方面开放到博客中,和大家一起交流学习! asp.net是目前流行的web开发技术之一,是微软旗下开发的基于.ne ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(二)—— easyui的简单实用
下面开始在UserManager.Web中利用easyUI构建web. 1. 先删除自带的controllers.models和views(里面的shared和web.config可以保存)下面的文件 ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(三)—— 简单登录页面+sqlite+动软代码生成器的使用
上一节讲到利用easyui的layout.tree.tab和datagrid创建用户管理的页面,注意利用到easyui的页面一定要按顺序添加jQuery和easyUI的.js和.css样式,灵活查看e ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(六)—— 简单过滤器的使用
有些同学喜欢在测试或运行项目时,直接跳转页面到Home/Index下,但本次项目直接输入Home/Index则会报错 因为home/index中有个user.name参数,如果启动项目后直接跳转到ho ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(一)—— 手把手教你创建第一个三层架构+mvc的asp.net项目
下面开启项目 1. 打开vs2010-文件-新建项目 2. 先创建一个空的解决方案: 选择其他项目类型-visual studio 解决方案-空白解决方案(默认.NET Framework 4),项目 ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(七)—— 添加用户到数据库-obj转json
这一节讲一下如何添加用户名和密码到已建的sqlite.db数据库中. 当在datagrid的toolbar中输入用户名.密码,然后点击添加按钮时,将该用户加入数据库,并显示出来.datagrid表格里 ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(五)—— 解决tabs选择已建tab显示但datagrid的toolbar消失的问题
项目需要反复运行,调整bug.发现在选择已有选项卡时,虽然不需要再新建tab,直接跳转到已有的tab上,但问题是显示的datagrid有事会出现toolbar消失的问题.网上也有不少同学出现类似问题, ...
- ASP.NET MVC+EasyUI+Entity FrameWork 整合开发
本文详细讲解怎么用ASP.NET MVC+EasyUI+Entity FrameWork 来开发一个项目 对于ASP.NET MVC的Jscript库,主要引用 <script type=.mi ...
- ASP.NET MVC +EasyUI 权限设计(二)环境搭建
请注明转载地址:http://www.cnblogs.com/arhat 今天突然发现博客园出问题了,老魏使用了PC,手机,平板都访问博客园了,都是不能正常的访问,原因是不能加载CSS,也就是不能访问 ...
随机推荐
- ASP.NET Core 2.2 基础知识(十八) 托管和部署 概述
为了方便演示,以 .NET Core 控制台应用程序讲解. 我们新建一个控制台应用程序,安装 "Newtonsoft.Json" Nuget 包,然后右键点击该项目,选择" ...
- 面试问题Distilled
1. 你在项目里都用过哪些Spring的组件 2. Spring AOP的实现原理 3. Hibernate的乐观锁和悲观锁 4. Hibernate的缓存机制 5. 对SOA的了解和认识 6. 谈谈 ...
- luogu P1824 进击的奶牛
题目描述 Farmer John建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,...,xN (0<=xi<=1,000,000 ...
- [BZOJ 1789] Necklace
Link: BZOJ 1789 传送门 Solution: 感觉$n\le 50$可以随便乱搞啊…… 这里我是先找到3条链的失配位置,再找到这之后其中2条链最远的失配位置,统计即可 Code: #in ...
- Javascript常见设计模式解析
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.毫无疑问,设计模式于己 ...
- ueditor-angular(百度编辑器angular版)中,关于插入图片后不操作,图片无法正常提交的问题;
由于项目后台管理页面中需要使用编辑器,所以选择了百度编辑器这个常用的东西: 本人是小白,第一次使用百度编辑器,具体的配置是由后台的兄弟完成的,还给了demo,所以在项目开发中也一直都没发现什么问题: ...
- 引用日志log4net.dll的web.config配置
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigu ...
- List<实体>与List<String>数据互转
1.List<实体>数据: public List<Device> queryOSDevice(String cpu,String ip,String name){ Strin ...
- java.lang.IllegalThreadStateException异常原因解析
前几天写了个小程序,运行的时候发现在循环第二遍的时候出现了java.lang.IllegalThreadStateException异常 通过上网查询发现同一个Thread不能重复调用start方法, ...
- Android画图系列(二)——自己定义View绘制基本图形
这个系列主要是介绍下Android自己定义View和Android画图机制.自己能力有限.假设在介绍过程中有什么错误.欢迎指正 前言 在上一篇Android画图系列(一)--自己定义View基础中我们 ...