Freigeben über


Gewusst wie: Zwischenspeichern von Versionen einer Seite mithilfe von Parametern

Aktualisiert: November 2007

Gelegentlich kann es vorkommen, dass Sie eine Seite zwischenspeichern möchten, diese aber abhängig vom Wert eines Abfragezeichenfolgen-Parameters oder von beim Postback übertragenen Werten verschiedene Ausgaben generiert. Wenn eine Seite beispielsweise abhängig vom Bundesstaat eines Benutzers Standorte von Geschäften anzeigt, könnte diese Seite einen "Bundesstaat"-Abfragezeichenfolgen-Wert entgegennehmen und basierend auf diesem Wert eine andere Version der Seite für jeden Bundesstaat generieren.

Sie können mehrere Versionen von Seitenantworten zwischenspeichern. Das Zwischenspeichern erfolgt dabei basierend auf den Parametern, die als Abfragezeichenfolgenwerte übertragen werden, oder auf Grundlage der Formularsendewerte.

Hinweis:

ASP.NET behandelt Abfragezeichenfolgen-Werte oder Formularsendewerte mit identischen Schlüssel-Wert-Paaren beim Zwischenspeichern als identisch, unabhängig von der Reihenfolge, in der die Parameter übergeben werden. Beim Zwischenspeichern wird jedoch die Groß-/Kleinschreibung von Parametern berücksichtigt. ASP.NET speichert zwei verschiedene Versionen einer Seite für Parameternamen in Groß- und Kleinbuchstaben im Cache.

So speichern Sie mit Parametern deklarativ mehrere Versionen der Seitenausgabe im Cache

  1. Fügen Sie der ASP.NET-Seite eine @ OutputCache-Direktive mit einem Duration-Attribut hinzu. Das Duration-Attribut ist erforderlich und muss auf einen ganzzahligen Wert größer als 0 (null) festgelegt werden.

  2. Fügen Sie der @ OutputCache-Direktive ein VaryByParam-Attribut hinzu, und legen Sie den Wert des Attributs auf den Namen der Abfragezeichenfolge oder des Formularsendeparameters fest, anhand dessen Sie den Cacheinhalt variieren möchten.

    Im folgenden Codebeispiel wird die Seite für einen Zeitraum von 60 Sekunden zwischengespeichert. Das Zwischenspeichern der verschiedenen Versionen der Seitenausgabe erfolgt basierend auf dem Abfragezeichenfolgen-Wert oder Formularsendeparameter City.

    <%@ OutputCache Duration="60" VaryByParam="City" %>
    
    Hinweis:

    Wenn Sie den Ausgabecache anhand mehrerer Parameter variieren möchten, fügen Sie eine durch Semikolons (;) getrennte Liste von Parameternamen ein. Wenn der Cache anhand aller Parameterwerte variiert werden soll, legen Sie das VaryByParam-Attribut auf ein Sternchen (*) fest. Das folgende Codebeispiel zeigt, wie die Seitenausgabe anhand des City-Parameters und des ZipCode-Parameters variiert wird.

So speichern Sie mit Parametern programmgesteuert mehrere Versionen der Seitenausgabe im Cache

  1. Rufen Sie im Page_Load-Ereignis für die Cache-Eigenschaft des Response-Objekts der Seite die SetCacheability-Methode und die SetExpires-Methode auf.

  2. Geben Sie den Parameternamen als Argument für die VaryByParams-Eigenschaft des Response-Objekts an, und legen Sie die Eigenschaft auf true fest.

    Das folgende Codebeispiel zeigt, wie verschiedene Versionen einer Seite zwischengespeichert werden, wenn der Server Anforderungen mit verschiedenen Werten für den Zip-Parameter erhält.

    Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0));
    Response.Cache.SetCacheability(HttpCacheability.Public);
    Response.Cache.SetValidUntilExpires(true);
    Response.Cache.VaryByParams["Zip"] = true;
    
    Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.SetValidUntilExpires(True)
    Response.Cache.VaryByParams("Zip") = True
    
    Hinweis:

    Wenn Sie den zwischengespeicherten Inhalt anhand mehrerer Parameter variieren möchten, legen Sie die VaryByParams-Eigenschaft mehrfach fest. Wenn die zwischengespeicherten Inhalte anhand aller Headerwerte variiert werden sollen, legen Sie das VaryByHeader-Attribut auf ein Sternchen (*) fest. Das folgende Codebeispiel zeigt, wie die Seitenausgabe anhand des City-Parameters und des Zip-Parameters variiert wird.

Siehe auch

Aufgaben

Gewusst wie: Deklaratives Festlegen der Cachefähigkeit einer ASP.NET-Seite

Gewusst wie: Programmgesteuertes Festlegen der Cachefähigkeit einer Seite

Gewusst wie: Zwischenspeichern von Versionen einer Seite mithilfe des anfordernden Browsers

Gewusst wie: Zwischenspeichern verschiedener Versionen einer Seite nach HTML-Headerwerten

Gewusst wie: Zwischenspeichern von Versionen einer Seite mithilfe von benutzerdefinierten Zeichenfolgen

Konzepte

Zwischenspeichern von ASP.NET-Seiten

Festlegen der Cachefähigkeit einer Seite

Zwischenspeichern mehrerer Versionen einer Seite