【问题标题】:retain value after page refresh页面刷新后保留值
【发布时间】:2011-08-23 02:47:04
【问题描述】:

我在 c# 中使用按钮控件(“验证按钮”)。 我在我的项目中定义了一些全局变量。 当我单击按钮时,会发生一些表单验证,并且另一个按钮(“保存按钮”)变得可见。 问题是当我单击验证按钮时,当前页面刷新并且全局变量不包含值。它显示为空。 即使在页面刷新后,我如何维护全局变量中的值。

【问题讨论】:

    标签: c# asp.net refresh


    【解决方案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】:

      【讨论】:

        【解决方案4】:

        第二种方法:使用不带 PostBack 的按钮的客户端事件(将按钮 AutoPostback 属性设置为 false)来验证您的表单。之后使用第二个按钮的服务器处理程序发布表单字段值...

        【讨论】:

          【解决方案5】:

          我认为您的意思是:您声明了一些变量 globally ,但通常这些变量会在页面循环结束时丢失它们的值。

          如果您想在回发后维护变量值,您可以使用static variables,但注意它们将在所有用户之间共享。使用session variables 是不错的选择。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-12-20
            • 1970-01-01
            • 2017-03-05
            • 1970-01-01
            • 1970-01-01
            • 2018-10-31
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多