Cette documentation est archivée et n’est pas conservée.

Substitution, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

Spécifie une section d'une page Web mise en cache de sortie qui est exemptée de mise en cache. À cet emplacement, le contenu dynamique est récupéré et substitué pour le contrôle Substitution.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

public class Substitution : Control
public class Substitution extends Control
public class Substitution extends Control

Utilisez le contrôle Substitution pour spécifier une section d'une page Web mise en cache de sortie dans laquelle vous souhaitez que le contenu dynamique soit substitué pour le contrôle. Le contrôle Substitution offre une solution simplifiée de mise en cache de page partielle pour les pages dans lesquelles la majorité du contenu est mise en cache. Vous pouvez mettre en cache de sortie la page entière, puis utiliser des contrôles Substitution pour spécifier les parties de la page qui sont exemptées de mise en cache. Les zones mises en cache ne s'exécutent qu'une seule fois et sont relues à partir du cache jusqu'à ce que l'entrée du cache expire ou est purgée. Les zones dynamiques s'exécutent chaque fois que la page est demandée. Ce modèle de mise en cache simplifie le code des pages qui sont essentiellement statiques, parce que vous ne devez pas encapsuler les sections à mettre en cache dans les contrôles utilisateur Web. Par exemple, ce modèle de mise en cache est utile dans un scénario où vous disposez d'une page qui contient du contenu statique, par exemple des articles de presse, et d'un contrôle AdRotator qui affiche des publicités. Les articles de presse ne changent pas, ce qui signifie qu'ils peuvent être mis en cache. Toutefois, chaque fois qu'un utilisateur demande la page, vous souhaitez afficher une nouvelle publicité. Le contrôle AdRotator prend en charge directement la substitution post-cache et restitue une nouvelle publicité chaque fois que la page est publiée, qu'elle soit mise en cache ou non.

RemarqueRemarque

Vous pouvez placer un contrôle Substitution dans un contrôle utilisateur contenu dans une page mise en cache. Toutefois, vous ne pouvez pas placer un contrôle Substitution dans un contrôle utilisateur mis en cache de sortie.

Lorsque le contrôle Substitution s'exécute, il appelle une méthode qui retourne une chaîne. La chaîne retournée par la méthode correspond au contenu à afficher dans la page à l'emplacement du contrôle Substitution. Utilisez la propriété MethodName pour spécifier le nom de la méthode de rappel à appeler lorsque le contrôle Substitution s'exécute. La méthode de rappel que vous spécifiez doit être une méthode statique dans la page ou le contrôle utilisateur qui contient le contrôle Substitution. La signature de la méthode de rappel doit correspondre à la signature d'un délégué HttpResponseSubstitutionCallback qui utilise un paramètre HttpContext et retourne une chaîne.

Pour manipuler le cache de sortie d'une page, vous pouvez utiliser la directive @ OutputCache, la classe HttpCachePolicy ou la propriété Cache. Pour plus d'informations sur la mise en cache de pages, consultez Mise en cache de pages ASP.NET et Mise en cache de parties d'une page ASP.NET.

Au lieu d'utiliser le contrôle Substitution, vous pouvez également obtenir le comportement de cache de substitution à l'aide d'un délégué HttpResponseSubstitutionCallback. De plus, vous pouvez obtenir le comportement de cache de substitution sur des contrôles, tels que le contrôle AdRotator, qui prennent en charge directement cette fonctionnalité. Pour plus d'informations, consultez Mise à jour dynamique de portions d'une page mise en cache.

L'exemple de code suivant montre comment ajouter de façon déclarative un contrôle Substitution à une page Web mise en cache de sortie. Lorsque la page se charge, la date et l'heure actuelles s'affichent dans un contrôle web Label pour l'utilisateur. Cette section de la page est mise en cache et à jour toutes les 60 secondes uniquement. Lorsque le contrôle Substitution s'exécute, il appelle la méthode GetCurrentDateTime. La chaîne retournée par GetCurrentDateTime s'affiche pour l'utilisateur. Cette section de la page n'est pas mise en cache et est mise à jour chaque fois que la page est actualisée.

<%@ outputcache duration="60" varybyparam="none" %>
<script runat="server" language="C#">  
  
  void Page_Load(object sender, System.EventArgs e)
  {
    // Display the current date and time in the label.
    // Output caching applies to this section of the page.
    CachedDateLabel.Text = DateTime.Now.ToString();    
  }
  
  // The Substitution control calls this method to retrieve
  // the current date and time. This section of the page
  // is exempt from output caching. 
  public static string GetCurrentDateTime (HttpContext context)
  {
    return DateTime.Now.ToString ();
  }
  
</script>

<html>
<head runat="server">
  <title>Substitution Class Example</title>
</head>
<body>
  <form runat="server">
  
    <h3>Substitution Class Example</h3>  
    
    <p>This section of the page is not cached:</p>
    
    <asp:substitution id="Substitution1"
      methodname="GetCurrentDateTime"
      runat="Server">
    </asp:substitution>
    
    <br />
    
    <p>This section of the page is cached:</p>
    
    <asp:label id="CachedDateLabel"
      runat="Server">
    </asp:label>
    
    <br /><br />
    
    <asp:button id="RefreshButton"
      text="Refresh Page"
      runat="Server">
    </asp:button>     

  </form>
</body>
</html>

  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal

System.Object
   System.Web.UI.Control
    System.Web.UI.WebControls.Substitution

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0
Afficher: