ASP.NET public static bool没有更新

时间:2015-02-06 07:51:16

标签: c# asp.net

我将bool字段声明为:

public static bool isSaved = false;

和按钮代码(简化)为:

protected void SaveButton_Click(object sender, EventArgs e)
{
    //Some other code

    //UPDATE isSaved
    isSaved = true;        

}//END SaveButton_Click

出于某种原因,点击isSaved时,SaveButton未更新。有没有已知的技术原因?

2 个答案:

答案 0 :(得分:1)

请始终牢记,默认情况下,如果您的应用程序未收到任何请求,则应用程序实例将从内存中过期并卸载。然后所有静态变量都将丢失!如果它们对于您的应用程序不是绝对必要的,请尽量避免使用静态变量。

答案 1 :(得分:0)

1)看一下ASPNET页面生命周期......有一个特定的方法执行顺序...... https://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx

在您的情况下,click事件处理程序将在页面加载方法之后执行,这就是为什么您看到它仍然保留以前的值。

2)也许不使用静态变量但使用session / application / viewstate对象?取决于您的设计,以决定哪一个最适合您的需求。

3)尝试在页面的预呈现阶段呈现标签文本...如果您是ASPNET的新手,您将不会特别头疼。或者甚至更好,而不是设置标志,然后使用此值来呈现文本...为什么不直接在按钮单击事件上设置文本? (可能要求您在页面加载时不执行任何操作)