页面刷新后保留值

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 是不错的选择。

【讨论】:

以上是关于页面刷新后保留值的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中刷新页面后保留下拉列表中的动态值

用JS怎么实现刷新页面后保留刷新前的页面上的数据显示

用js操作 怎样 实现刷新当前页面 而 不改变请求头的referer 值

页面刷新后保留表格排序结果?

角度刷新后将数据保留在页面中

刷新页面后如何保留props.location.state?(不使用本地存储)