页面刷新后保留值
Posted
技术标签:
【中文标题】页面刷新后保留值【英文标题】:retain value after page refresh 【发布时间】:2011-08-23 02:47:04 【问题描述】:我在 c# 中使用按钮控件(“验证按钮”)。 我在我的项目中定义了一些全局变量。 当我单击按钮时,会发生一些表单验证,并且另一个按钮(“保存按钮”)变得可见。 问题是当我单击验证按钮时,当前页面刷新并且全局变量不包含值。它显示为空。 即使在页面刷新后,我如何维护全局变量中的值。
【问题讨论】:
【参考方案1】:这是 asp.net,对吗?
将此值存储在会话 Session["MyVariable"] = value
中并从会话 value = Session["MyVaraible"]
中读取它
还有其他选择,ViewState、Application 甚至使用静态变量,但使用 session 对您来说足够简单。
【讨论】:
【参考方案2】:不清楚全局变量是什么意思。假设它的页面级别(实例)变量,你最好的选择是使用视图状态。定义视图状态支持的属性,例如
private int MyVar
get
var value = ViewState["MyVar"];
return null != value ? (int)value: 0;
set
ViewState["MyVar"] = value;
【讨论】:
ViewState 在页面刷新时被删除,因此不能用于此目的。 SessionState 也不能使用,因为在同一个浏览器中打开的所有页面都会使用同一个 Session 内的运行,所以也不能使用。 :-\ @dmitry_bond,OP 正在讨论按钮单击时的页面刷新(回发场景),因此视图状态的相关性。【参考方案3】:我认为你需要使用会话状态http://msdn.microsoft.com/en-us/library/87069683(v=vs.80).aspx
【讨论】:
【参考方案4】:第二种方法:使用不带 PostBack 的按钮的客户端事件(将按钮 AutoPostback 属性设置为 false)来验证您的表单。之后使用第二个按钮的服务器处理程序发布表单字段值...
【讨论】:
【参考方案5】:我认为您的意思是:您声明了一些变量 globally
,但通常这些变量会在页面循环结束时丢失它们的值。
如果您想在回发后维护变量值,您可以使用static variables
,但注意它们将在所有用户之间共享。使用session variables
是不错的选择。
【讨论】:
以上是关于页面刷新后保留值的主要内容,如果未能解决你的问题,请参考以下文章