2010-12-07 72 views
1

在我的web应用程序我检查会话状态这样的..在页面加载,甚至页面之一,但它是每次会议不为空则显示看,这是我的代码...在asp.net中检查会话?

if (Session["my"] != null) 
{ 
    Response.Write("hi"); 
} 
else 
{ 
    Response.Redirect("default.aspx"); 
} 

这是我在哪里这样的分配值会话我正在 一个按钮和一个链接按钮,并写出这样的代码

protected void btn_Click(object sender, EventArgs e) 
{ 
    Session["my"] = "surya"; 
    Response.Redirect("default1.aspx"); 
} 

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("default1.aspx"); 
} 

却是露出每次我的意思是,即使我点击链接的网页按钮它显示“嗨”的消息 可以帮我我有什么ispostback问题是th ERE

+1

请学习使用标点符号! – 2010-12-07 14:55:51

回答

0

页面加载执行每一个页面被请求

时间这就是为什么“你好”被印在屏幕上(如果您的会话!= null),则为。你只是想让它发生一次吗?

如果是这样的探索Page.IsPostBack

private void Page_Load() 
{ 
    if (!IsPostBack) 
    { 
     // Will only happen if its not a postback 
     // (first request) 
    } 
} 
+0

@ m.edmondson我想检查会话是否为空它是重定向default.aspx.if会话包含值“hi”消息应显示 – 2010-12-07 14:46:15

1

,因为您的值分配给会话变量“我”和Default.aspx中你写的“喜”如果会话变量“我的”不为空,这是正常。

只需更改行

Response.Write("hi"); 

Response.Write(Session["my"].ToString()); 

,你会看到会话变量的值, “我的”。

1

如果添加另一个按钮,然后单击处理程序是什么:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    Session.Abandon(); 
    Response.Redirect("default1.aspx"); 
} 

我预计会议将随后清零,以使得“喜”不打印。

发生了什么(我猜)是你在会话中放了一些东西,而且从来没有清除它。

注意:该Session.Abandon()清除整个会话。您也可以使用Session.Remove("my");来清除此值。