[英]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.