我有一个带有c#代码隐藏的asp.net页面,它在Page_Load()方法中执行一些操作(比如查询数据库并进行一些其他调用以使用数据填充对象)。然后我在页面上显示这些数据。一切正常。我设置了几个回发,以便在单击列表框中的值时,面板控件将填充相应对象的其余数据。我认为回发是正确的方法,但这会导致重新调用(整个类?),重新初始化我的对象并销毁我想要保留的数据。
某种形式的部分回发会解决这个问题,还是有更好的方法来实现我想要做的事情?
我不希望每次调用回发时都重新填充对象,因为这需要进行数据库查询,并且我希望每次点击某些内容时都避免重新查询......
我发现很多关于持久化Javascript对象的问题,但似乎并没有真正解决这个问题。我正在使用.Net 4.0
答案 0 :(得分:3)
将对象放入当前用户的Session
。
答案 1 :(得分:2)
将所有初始化内容放在(!IsPostback) { }
中并使用部分回发。这样,在回发期间不会再次调用初始化代码。
答案 2 :(得分:1)
为什么不缓存对象?
缓存API,使用缓存对象: http://msdn.microsoft.com/en-us/library/aa478965.aspx#aspnet-cachingtechniquesbestpract_topic4