从静态内容存储引用/访问页面实例

时间:2013-06-26 19:48:00

标签: c# asp.net reference static

由于我的编程时间太长,我将首先写出我的假设,因为我的理论可能不太正确。

假设:

  1. 遵循引用类型后面的简单逻辑,如果我有一个Class' Class1'的实例,称为A,并创建一个类型为Class1的新变量:Class1 newInstance = A,则A类和#39中的每个更改; s属性应该反映在&new; newInstance'作为类的属性是引用类型(与值类型相反,例如在结构中)。
  2. 在asp中,每个页面都是类型为Page的类的新实例,否则每个客户端都会在同一页面上查看和操作,目标是将它们分开。页面的每个组件(如textBox或gridView)都属于特定实例 如果这些是错误的,请纠正我。
  3. 问题:
    由于我被迫使用页面方法从客户端(javascript)获取一些数据,我别无选择,只能使用静态方法。我想要实现的是能够在会话变量中存储页面实例或至少某种引用,以便稍后我可以回到它并获取或设置所需页面实例中特定控件的值。 所以我所做的是:我将当前实例(this)存储在会话变量中。这只在PageLoad上分配一次(!isPostback)。 遵循引用类型的逻辑,页面实例中的每个更改都应该反映在会话变量中,但不知道它是不是。如果某些控件的值发生了变化,我可以很容易地看到它们反映在postBack上的页面实例中(正如它们所应),但是我的会话变量的内容没有被更改。它表现得好像是一个结构。 当我试图将实例存储在静态类变量中时,会发生同样的情况(尽管即使它起作用也不是解决方案,因为它是一个多用户Web应用程序)。

    任何人都可以向我解释发生了什么,并纠正我的想法,如果它错了。

0 个答案:

没有答案