当前位置:编程学习 > C#/ASP.NET >>

问题虽然简单但还是请高手进关于session

(1)本人想通过<a>标记的onclick事件调用JavaScript函数,然后在JavaScript函数里调用页面的隐藏按钮的事件清除session["user"]里面的值,表示退出;
(2)我另外有个方法:新建了3个asp.net网页
    第一个:login.aspx(已经设为起始页面) 里面有一个Button按钮,单击后表示登录,事件单击代码如下:
  protected void Button1_Click(object sender, EventArgs e)
    {
        Session["user"] = "user1";
        Response.Redirect("user.aspx");
    }   

  第二个 user.aspx 的页面加载代码如下:
    protected void Page_Load(object sender, EventArgs e)
    {
            if (Session["user"] == null)
            {
                Response.Write("<script>alert('user不能为空!')</script>");
                Response.Redirect("Default.aspx");
            }
     }       源代码里有个<a>标签,<a    href="logout.aspx" >退出</a>  单击后跳转到logout。aspx页面

 第三个 logout.aspx页面加载的时候执行下面代码:
  protected void Page_Load(object sender, EventArgs e)
    {
        Session["user"] = null;
        //Session.Remove("user");
        Response.Redirect("Default.aspx");
    }就是通过这个页面清空session的值,问题来了,:
首先我执行登录,单击登录按钮后,跳转到user.aspx界面,然后单击退出,经过logout页面跳转到登录界面login.aspx,但是这个时候我直接在地址栏输入user.aspx页面却没有弹出user不能为空的提示也没有跳转到登录界面,请问是怎么回事? --------------------编程问答-------------------- Session.Clear();
Session.Abadon(); --------------------编程问答-------------------- ClientScript.RegisterStartupScript
response.redirect 是当服务器碰到这条语句时发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求,请求那个新的地址 
Response.Write(" <script>alert(...");把这些内容缓存起来,最终发送给客户端,客户端收到了这个文档并解释执行了其中的脚本。如果后面用了Response.Redirect()那么缓存信息就清空了,并没有发送给客户端,所以当然不会有提示。  

Response.Write(" <script>alert('!');location='a.aspx' </script>"); 
--------------------编程问答-------------------- 学习~~~~~~~`
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,