如果我在.aspx页面的代码隐藏中创建一个对象,我可以期待该对象存活多久?它会活在后面吗?我可以以某种方式将它传递到另一页吗?我可以把它作为会话对象吗?
我在网上搜索希望找到一个文档来解释从代码隐藏创建的对象的生命周期,以及如何与这个生命周期进行交互;任何相关的链接将不胜感激。
顺便说一下,我在代码隐藏中使用C#,但我想大多数针对VB的建议都适用。
答案 0 :(得分:5)
如果我在中创建一个对象 .aspx页面的代码隐藏,有多长 我可以期待这个对象存活吗?将 它背靠后卫?我可否 把它以某种方式传递到另一页?可以 只要比如说,我就可以让它活着 会话对象?
您可以在会话中保存对象实例:
Session["Foo"] = new MyFoo();
您可以在有权访问会话的任何页面上检索实例:
MyFoo foo = (MyFoo) Session["Foo"];
另一种方法是使用static
变量 - 在这种情况下,变量保持其值直到应用程序域被销毁(即重新启动IIS时) - 但它也是全局的,因为它具有所有用户的相同值(因为它与会话完全无关)。
答案 1 :(得分:5)
该对象仅与页面一样长,即在页面请求的持续时间内。如果你想让它更长寿,你可以存储在Session中并为每个请求检索它。
答案 2 :(得分:3)
代码隐藏在请求期间。它不会生活在后卫之间。如果您想在回发中使用它,可以向Session添加值。这同样适用于VB。