在回发中保留c#对象

时间:2011-06-10 16:15:44

标签: c# asp.net postback partial-postback

我有一个带有c#代码隐藏的asp.net页面,它在Page_Load()方法中执行一些操作(比如查询数据库并进行一些其他调用以使用数据填充对象)。然后我在页面上显示这些数据。一切正常。我设置了几个回发,以便在单击列表框中的值时,面板控件将填充相应对象的其余数据。我认为回发是正确的方法,但这会导致重新调用(整个类?),重新初始化我的对象并销毁我想要保留的数据。

某种形式的部分回发会解决这个问题,还是有更好的方法来实现我想要做的事情?

我不希望每次调用回发时都重新填充对象,因为这需要进行数据库查询,并且我希望每次点击某些内容时都避免重新查询......

我发现很多关于持久化Javascript对象的问题,但似乎并没有真正解决这个问题。我正在使用.Net 4.0

3 个答案:

答案 0 :(得分:3)

将对象放入当前用户的Session

答案 1 :(得分:2)

将所有初始化内容放在(!IsPostback) { }中并使用部分回发。这样,在回发期间不会再次调用初始化代码。

答案 2 :(得分:1)

为什么不缓存对象?

缓存API,使用缓存对象: http://msdn.microsoft.com/en-us/library/aa478965.aspx#aspnet-cachingtechniquesbestpract_topic4