Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aktualisiert: November 2007
Mit dem Substitution-Steuerelement können Sie Bereiche auf der Seite erstellen, die dynamisch aktualisiert und dann in eine zwischengespeicherte Seite integriert werden können.
Dieses Thema enthält folgende Abschnitte:
Szenarien
Hintergrund
Codebeispiele
Klassenreferenz
Szenarien
Mit dem Substitution-Steuerelement kann ein Abschnitt einer Webseite im Ausgabecache angegeben werden, in dem dynamischer Inhalt angezeigt werden soll. Mit dem Substitution-Steuerelement kann die partielle Zwischenspeicherung für Seiten vereinfacht werden, bei denen der größte Teil des Inhalts zwischengespeichert ist. Sie können die gesamte Seite im Ausgabechache zwischenspeichern und dann mithilfe der Substitution-Steuerelemente die Teile der Seite angeben, die von der Zwischenspeicherung ausgenommen sind. Zwischengespeicherte Bereiche werden nur einmal ausgeführt und aus dem Cache gelesen, bis der Cacheeintrag abgelaufen ist oder endgültig entfernt wird. Dynamische Bereiche werden bei jeder Anforderung der Seite ausgeführt. Dieses Modell des Zwischenspeicherns vereinfacht den Codes für überwiegend statische Seiten, da die zwischenzuspeichernden Abschnitte nicht in Webbenutzersteuerelementen gekapselt werden müssen. Dieses Modell des Zwischenspeicherns bietet sich beispielsweise für ein Szenario mit einer Seite mit statischem Inhalt (z. B. Nachrichten) und einem AdRotator-Steuerelement zum Anzeigen von Werbung an. Die Nachrichten werden nicht regelmäßig geändert und können daher zwischengespeichert werden. Allerdings soll jedes Mal, wenn ein Benutzer die Seite anfordert, eine neue Werbung angezeigt werden. Das AdRotator-Steuerelement unterstützt die nach dem Zwischenspeichern erfolgende Ersetzung direkt und gibt unabhängig davon, ob die Seite zwischengespeichert wurde, bei jedem Postback der Seite eine neue Werbung wieder.
Zurück nach oben
Hintergrund
Beim Zwischenspeichern einer ASP.NET-Seite wird standardmäßig die gesamte Ausgabe der Seite zwischengespeichert. Bei der ersten Anforderung wird die Seite ausgeführt, und ihre Ausgabe wird zwischengespeichert. Nachfolgende Anforderungen werden aus dem Zwischenspeicher erfüllt, ohne dass Code auf der Seite ausgeführt wird.
In manchen Situationen möchten Sie vielleicht eine ASP.NET-Seite zwischenspeichern und trotzdem bestimmte Bereiche der Seite bei jeder Anforderung aktualisieren. Beispiel: Sie möchten eine Seite größtenteils zwischenspeichern, doch einige zeitbezogene Informationen auf der Seite sollen dynamisch aktualisiert werden.
Sie können das Substitution-Steuerelement verwenden, um dynamischen Inhalt in die zwischengespeicherte Seite einzufügen. Das Substitution-Steuerelement gibt kein Markup wieder. Stattdessen binden Sie das Steuerelement an eine Methode auf der Seite oder eines übergeordneten Benutzersteuerelements. Sie erstellen eine statische Methode, von der die Informationen zurückgeben werden, die Sie in die Seite einfügen möchten. Die vom Substitution-Steuerelement aufgerufene Methode muss die folgenden Kriterien erfüllen:
Es muss sich um eine statische Methode (Shared in Visual Basic) handeln.
Ein Parameter vom Typ HttpContext muss akzeptiert werden.
Ein Wert vom Typ String muss zurückgegeben werden.
Mit dem Substitution-Steuerelement kann nicht auf andere Steuerelemente der Seite zugegriffen werden. Sie können den Wert anderer Steuerelemente nicht überprüfen oder ändern. Der Code hat jedoch durch den übergebenen Parameter Zugriff auf den aktuellen Seitenkontext.
Wenn die Seite ausgeführt wird, ruft das Substitution-Steuerelement die Methode auf und ersetzt dann das Substitution-Steuerelement auf der Seite durch den Rückgabewert der Methode.
Zurück nach oben
Codebeispiele
Im folgenden Codebeispiel wird veranschaulicht, wie sich mithilfe des Substitution-Steuerelements dynamisch aktualisierter Inhalt auf einer zwischengespeicherten Seite erstellen lässt. Code im Load-Ereignis der Seite aktualisiert ein Label-Steuerelement mit der aktuellen Zeit. Durch die Festlegung der Zwischenspeicherungsdauer auf 60 Sekunden ändert sich der Text des Label-Steuerelements nicht, auch wenn die Seite innerhalb des Zeitraums von 60 Sekunden mehrmals angefordert wird. Ein Substitution-Steuerelement auf der Seite ruft die statische Methode GetTime auf, die die aktuelle Zeit als Zeichenfolge zurückgibt. Bei jeder Aktualisierung der Seite wird der durch das Substitution-Steuerelement dargestellte Wert aktualisiert.
<%@ Page Language="VB" %>
<%@ OutputCache Duration=60 VaryByParam="None" %>
<script >
Sub Page_Load()
Label1.Text = DateTime.Now.ToString()
End Sub
Public Shared Function GetTime(ByVal context As HttpContext) _
As String
Return DateTime.Now.ToString()
End Function
</script>
<html>
<head ></head>
<body>
<form id="form1" >
<div>
<p>
<asp:Label ID="Label1" />
</p>
<p>
<asp:Substitution
ID="Substitution1"
MethodName="GetTime" />
</p>
<p>
<asp:Button ID="Button1" Text="Submit"/>
</p>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ OutputCache Duration=60 VaryByParam="None" %>
<script >
void Page_Load()
{
Label1.Text = DateTime.Now.ToString();
}
public static String GetTime(HttpContext context)
{
return DateTime.Now.ToString();
}
</script>
<html>
<head ></head>
<body>
<form id="form1" >
<div>
<p>
<asp:Label ID="Label1" />
</p>
<p>
<asp:Substitution
ID="Substitution1"
MethodName="GetTime" />
</p>
<p>
<asp:Button ID="Button1" Text="Submit"/>
</p>
</div>
</form>
</body>
</html>
Zurück nach oben
Klassenreferenz
In der folgenden Tabelle werden die Klassen aufgelistet, die sich auf das Substitution-Steuerelement beziehen.
Member |
Beschreibung |
|---|---|
Die Hauptklasse des Steuerelements. |
Zurück nach oben
Siehe auch
Konzepte
Dynamisches Aktualisieren von Bereichen einer zwischengespeicherten Seite