2011-02-03 1 views
2

Я использую OutputCache на странице ASP.NET. Я установил его программно так, как это в моей Page_Load:Как отключить OutputCache только для одного UserControl на странице ASP.Net?

Response.AddFileDependency(cachefilepath); 
Response.Cache.SetExpires(DateTime.Now.AddHours(12)); 
Response.Cache.SetCacheability(HttpCacheability.Server); 
Response.Cache.SetValidUntilExpires(true); 
Response.Cache.SetSlidingExpiration(false); 
Response.Cache.VaryByParams["*"] = true; 

Теперь страница будет кэшироваться, и это работает нормально. Но у меня есть один UserControl на странице, который нельзя кэшировать. Возможно ли отключить кеширование для этого UserControl, хотя вся страница кэшируется?

Причина заключается в том, что выход из этого UserControl имеет два состояния и поэтому может быть различным для каждого клиента в соответствии с его действиями ...

ответ

2

Response.Cache это на веб-странице, вы должны управлять кэшем на всей странице, основанной на пользовательском элементе управления, другими словами, вам придется истекать кеш страницы, когда пользовательский элемент управления является динамическим, похоже, что в кеше вывода кэш-памяти не будет работать хорошо

или вы можете добавить VaryByControl и передать этот контроль, ref: http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx