会话状态直到第三次尝试才保存值
Session State not saving value until third attempt
我目前正在尝试学习如何使用会话状态,但我 运行 遇到了一个我无法弄清楚的问题。我想要做的是有一个按钮,当我点击它时,它会将我的变量的值增加 1,但我的问题是前三次我点击它我的 int 没有增加但是第四次点击它按预期工作并增加。
这是我的代码。
private static int Clicks = 1;
protected void Page_Load(object sender, EventArgs e)
{
// First page load?
if (!IsPostBack)
{
Session["Clicks"] = Clicks; //Clicks
}
Label1.Text = Convert.ToString(Session["Clicks"]);
}
protected void btnCounter_Click(object sender, EventArgs e)
{
//UserClick.BtnClicks++;
Session["Clicks"] = Clicks++;
}
您应该查看 ASP.NET Page Lifecycle(请参阅回发事件处理)。
在 Page_Load
事件之后才会触发 btnCounter
单击事件。如果您在 Click
事件中更新 Label
,您可能会获得更好的结果。
protected void btnCounter_Click(object sender, EventArgs e)
{
Session["Clicks"] = Clicks++;
Label1.Text = Session["Clicks"].ToString();
}
此外,由于您将该变量硬设置为“1”,每次单击该按钮时,它都会重置为 1。您可能希望将其替换为 getter 和 setter检查会话变量是否存在,如果存在,则将值设置为该值。
我目前正在尝试学习如何使用会话状态,但我 运行 遇到了一个我无法弄清楚的问题。我想要做的是有一个按钮,当我点击它时,它会将我的变量的值增加 1,但我的问题是前三次我点击它我的 int 没有增加但是第四次点击它按预期工作并增加。
这是我的代码。
private static int Clicks = 1;
protected void Page_Load(object sender, EventArgs e)
{
// First page load?
if (!IsPostBack)
{
Session["Clicks"] = Clicks; //Clicks
}
Label1.Text = Convert.ToString(Session["Clicks"]);
}
protected void btnCounter_Click(object sender, EventArgs e)
{
//UserClick.BtnClicks++;
Session["Clicks"] = Clicks++;
}
您应该查看 ASP.NET Page Lifecycle(请参阅回发事件处理)。
在 Page_Load
事件之后才会触发 btnCounter
单击事件。如果您在 Click
事件中更新 Label
,您可能会获得更好的结果。
protected void btnCounter_Click(object sender, EventArgs e)
{
Session["Clicks"] = Clicks++;
Label1.Text = Session["Clicks"].ToString();
}
此外,由于您将该变量硬设置为“1”,每次单击该按钮时,它都会重置为 1。您可能希望将其替换为 getter 和 setter检查会话变量是否存在,如果存在,则将值设置为该值。