前面的学习,已经做好了简单的登录和主页,涉及了三层软件架构,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传递登录人信息显示+用户注销的更多相关文章

  1. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅—— 摘要

    首次接触asp.net开发,希望把自己的学习之旅写下来,一方面做个知识归纳技术总结,另一方面开放到博客中,和大家一起交流学习! asp.net是目前流行的web开发技术之一,是微软旗下开发的基于.ne ...

  2. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(二)—— easyui的简单实用

    下面开始在UserManager.Web中利用easyUI构建web. 1. 先删除自带的controllers.models和views(里面的shared和web.config可以保存)下面的文件 ...

  3. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(三)—— 简单登录页面+sqlite+动软代码生成器的使用

    上一节讲到利用easyui的layout.tree.tab和datagrid创建用户管理的页面,注意利用到easyui的页面一定要按顺序添加jQuery和easyUI的.js和.css样式,灵活查看e ...

  4. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(六)—— 简单过滤器的使用

    有些同学喜欢在测试或运行项目时,直接跳转页面到Home/Index下,但本次项目直接输入Home/Index则会报错 因为home/index中有个user.name参数,如果启动项目后直接跳转到ho ...

  5. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(一)—— 手把手教你创建第一个三层架构+mvc的asp.net项目

    下面开启项目 1. 打开vs2010-文件-新建项目 2. 先创建一个空的解决方案: 选择其他项目类型-visual studio 解决方案-空白解决方案(默认.NET Framework 4),项目 ...

  6. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(七)—— 添加用户到数据库-obj转json

    这一节讲一下如何添加用户名和密码到已建的sqlite.db数据库中. 当在datagrid的toolbar中输入用户名.密码,然后点击添加按钮时,将该用户加入数据库,并显示出来.datagrid表格里 ...

  7. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(五)—— 解决tabs选择已建tab显示但datagrid的toolbar消失的问题

    项目需要反复运行,调整bug.发现在选择已有选项卡时,虽然不需要再新建tab,直接跳转到已有的tab上,但问题是显示的datagrid有事会出现toolbar消失的问题.网上也有不少同学出现类似问题, ...

  8. ASP.NET MVC+EasyUI+Entity FrameWork 整合开发

    本文详细讲解怎么用ASP.NET MVC+EasyUI+Entity FrameWork 来开发一个项目 对于ASP.NET MVC的Jscript库,主要引用 <script type=.mi ...

  9. ASP.NET MVC +EasyUI 权限设计(二)环境搭建

    请注明转载地址:http://www.cnblogs.com/arhat 今天突然发现博客园出问题了,老魏使用了PC,手机,平板都访问博客园了,都是不能正常的访问,原因是不能加载CSS,也就是不能访问 ...

随机推荐

  1. CSS3实现鼠标经过图片时图片放大

    在鼠标经过图片时,图片被放大,而且还有个过渡的效果.... <!DOCTYPE html> <html> <head> <link href="cs ...

  2. 【cocos2d-js官方文档】三、Bake功能使用说明

    设计意图 在游戏开发的过程中,经常会遇到作为UI或者不怎么修改的背景的层(Layer), 这些层内容并不怎么变动. 而在游戏的渲染过程中,这些层往往又会消耗大量的渲染时间,特别是比较复杂的UI界面,比 ...

  3. [xunsearch] 在thinkphp中使用xunsearch

    file: XunSearchController.class.php <?php namespace Home\Controller; include '/opt/xunsearch/sdk/ ...

  4. Windows下python的第三方库的安装

    D:\Python27\Scripts\pip.exe install beautifulsoup4

  5. 对Array.prototype.slice.call()方法的理解在看别人代码时,发现有这么个写法:[].slice.call(arguments, 0),这到底是什么意思呢?

    1.基础 1)slice() 方法可从已有的数组中返回选定的元素. start:必需.规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位置.也就是说,-1 指最后一个元素,-2 指倒数第 ...

  6. [POI2014]Hotel

    题目大意: 给你一颗$n(n\le5000)$个点的树,选3个点使得它们两两距离相等,问共有几种选法. 思路: 首先我们不难发现一个性质:对于每3个符合条件的点,我们总能找到一个点使得这个点到那3个点 ...

  7. 金融应用,计算未来投资回报值 Exercise06_07

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:金融应用,计算未来投资回报值 * */ public class Exer ...

  8. Problem R: 零起点学算法13——求2个时间之间的分钟数

    #include<stdio.h> int main() { int a1,b1,a2,b2,s; scanf("%d:%d",&a1,&b1); sc ...

  9. Ionic2 常见问题及解决方案

    前言 Ionic是目前较为流行的Hybird App解决方案,在Ionic开发过程中会遇到很多常见的开发问题,本文尝试对这些问题给出解决方案. 一些常识与技巧 list 有延迟,可以在ion-cont ...

  10. Radius报文解析(转)

    RADIUS ,是远程认证拨号用户服务的简称.RADIUS原先设计的目的是为拨号用户进行认证和计费.后来经过多次改进,形成了一项通用的认证计费协议,主要完成在网络接入设备和认证服务器之间承载认证.授权 ...