3

如何在 c# / asp.net 中创建在页面重新加载/回发后仍然存在的对象 X 的持久列表?这在 c# 中从来都不是问题,但在 asp.net 中,回发会清除所有内容。

4

2 回答 2

2

Asp.net 是为无状态的HTTP协议构建的,因此您无法在回发时找到对象。您可以改用视图状态。

视图状态

简而言之,Microsoft® ASP.NET 视图状态是 ASP.NET 网页使用的一种技术,用于在回发期间保持对 Web 窗体状态的更改。

视图状态的作用

视图状态在生活中的目的很简单:它可以在回发中保持状态。(对于 ASP.NET 网页,它的状态是构成其控件层次结构的控件的属性值。)这就引出了一个问题,“需要保持什么样的状态?” 为了回答这个问题,让我们首先看看哪些状态不需要在回发中持久化。回想一下,在页面生命周期的实例化阶段,会创建控件层次结构并分配声明性语法中指定的那些属性。由于在构造控件层次结构时,这些声明性属性会在每次回发时自动重新分配,因此无需将这些属性值存储在视图状态中。

于 2013-04-19T18:25:41.543 回答
1

您可以随时将您的项目保存到当前会话。

例如:

Session["var1"] = // whatever you want

并且您的 Session 对象将一直存在,直到当前会话过期,而不管 PostBacks。

于 2013-04-19T18:25:42.437 回答