繁体   English   中英

ASP.NET公共静态布尔不更新

[英]ASP.NET public static bool not updating

我有一个bool字段声明为:

public static bool isSaved = false;

和按钮代码(简化)为:

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

    //UPDATE isSaved
    isSaved = true;        

}//END SaveButton_Click

由于某些原因,当我单击SaveButton时, isSaved不会更新。 是否有已知的技术原因?

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

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

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

2)也许不使用静态变量,而是使用session / application / viewstate对象? 根据您的设计来决定哪一种最适合您的需求。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM