在我的Web应用程序中,我正在检查这样的会话状态..在页面加载甚至是其中一个页面但是每次会话都不为null时显示看到这是我的代码......
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");
}
但每次显示我的意思是即使我点击链接按钮它显示“hi”消息 你有没有帮我?是否有任何背后的问题
答案 0 :(得分:1)
这是正常的,因为您为会话变量“my”分配了一个值,而在default.aspx中,如果会话变量“my”不为null,则写入“hi”。
只需更改行
即可Response.Write("hi");
到
Response.Write(Session["my"].ToString());
你会看到会话变量“my”的值。
答案 1 :(得分:1)
如果添加其他按钮并单击处理程序,该怎么办?
protected void Button2_Click(object sender, EventArgs e)
{
Session.Abandon();
Response.Redirect("default1.aspx");
}
我希望会话被清除,以便不打印“Hi”。
发生了什么(我猜)是你在会话中放了一些内容而从未清除它。
注意:Session.Abandon()
清除整个会话。您也可以使用Session.Remove("my");
清除此值。
答案 2 :(得分:0)
每次请求页面时都会执行页面加载
这就是为什么(当你的会话!= null)屏幕上正在打印“嗨”。你只是想让它发生一次吗?
如果是,请探索Page.IsPostBack
private void Page_Load()
{
if (!IsPostBack)
{
// Will only happen if its not a postback
// (first request)
}
}