Как отключить OutputCache только для одного UserControl на странице ASP.Net? - PullRequest
2 голосов
/ 03 февраля 2011

Я использую OutputCache на странице ASP.NET. Я установил это программно так в моей Page_Load:

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 имеют два состояния и поэтому могут быть разными для каждого клиента в зависимости от его действий ...

1 Ответ

2 голосов
/ 03 февраля 2011

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

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

...