2010-04-07 3 views
2

Я хочу, чтобы продолжительность была настраиваемой из файла Web.config, поэтому пользователь может изменить выходное кэширование после развертывания.UserControls - Программная установка длительности кэширования выходных данных?

Для достижения такого puropse мне нужен кувейтальный код C# codebehind из следующей разметки ASP.NET?

<%@ OutputCache Duration="120" VaryByParam="CategoryName" %> 

ответ

5

Существует способ программно настройки длительности кэширования страниц, хотя я не уверен, если это работает для частичного кэширования пользовательских элементов управления:

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); 
Response.Cache.SetCacheability(HttpCacheability.Public); 
Response.Cache.VaryByParams["Category"] = true; 
Response.Cache.SetNoServerCaching(); 

См http://support.microsoft.com/kb/323290

Y НУ может также добавить PartialCaching() attribute в пользовательский элемент управления, чтобы определить кэширование:

[PartialCaching(120)] 
public partial class CachedControl : System.Web.UI.UserControl 
{ 
    // Class Code 
} 

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

+0

+1. Именно через поиск я столкнулся с этим вопросом, и я решил свой собственный вопрос. Просто хотел подтвердить, что 3-я строка выше: Response.Cache.VaryByParams ["Category"] = true; если опустить, кеширование не будет работать. Также при использовании директивы <% Output %> мы должны указать атрибут VaryByParam, иначе он будет генерировать исключение. –

Смежные вопросы