Asp.net是否可以在缓存中存储服务器控件?

时间:2012-11-24 23:01:01

标签: asp.net web-controls

Asp.net将服务器控件存储在缓存中是否可能/坏主意?

创建一个控件是一个坏主意,即:HtmlGenericControl,然后将其添加到Page.Cache,然后在OnInit()上检索它并将其添加到页面控件集合中?

或者使用ParseControl更好吗?

2 个答案:

答案 0 :(得分:1)

这很危险。每次调用页面时,您都会获得它的实例。此实例将具有设计器所放置的所有控件的实例。如果将控件实例存储在缓存中,则可能会遇到页面的多个实例将共享控件实例的情况。您需要注意进入此控制数据部分的内容,因为它也将被共享

答案 1 :(得分:0)

由于Control特定于Page(例如,具有Page属性),因此您无法将其存储在Cache中并在多个页面之间共享。也许您可能会改为fragment caching