2 votes

UserControls - Définir de manière programmée la durée de la mise en cache des sorties ?

Je veux que la durée soit configurable à partir du fichier Web.config, afin que l'utilisateur puisse modifier la mise en cache de la sortie après le déploiement.

Pour atteindre cet objectif, j'ai besoin d'un extrait de code C# équivalent au balisage ASP.NET suivant ?

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

5voto

Dan Diplo Points 16133

Il existe un moyen de définir par programmation la durée de la mise en cache des pages, mais je ne suis pas sûr que cela fonctionne pour la mise en cache partielle des contrôles utilisateur :

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

Voir http://support.microsoft.com/kb/323290

Vous pouvez également ajouter un Attribut PartialCaching() à un contrôle utilisateur pour définir la mise en cache :

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

Je ne suis pas sûr de la façon dont cela pourrait être manipulé par programme, mais cela pourrait vous donner quelques idées.

0voto

Jan Jongboom Points 15148

Vous pouvez définir la mise en cache de la sortie en utilisant l'option Response.Cache propriété.

Dans ce cas :

Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Response.Cache.VaryByParams["Category"] = true;

http://msdn.microsoft.com/en-us/library/y18he7cw%28VS.71%29.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X