Procedura: memorizzare nella cache più versioni di un controllo utente in base ai parametri
Aggiornamento: novembre 2007
È possibile variare la memorizzazione nella cache dell'output del controllo utente in due modi:
Specificando il nome del controllo utente con una stringa di query o un parametro di POST dei form. È possibile eseguire questa operazione in modo dichiarativo utilizzando l'attributo VaryByParam della direttiva @ OutputCache. In alternativa, è possibile eseguirla a livello di codice impostando la proprietà VaryByParams nel PartialCachingAttribute del codice del controllo utente.
Specificando la proprietà ID di un controllo server ASP.NET contenuto nel controllo utente. È possibile eseguire questa operazione in modo dichiarativo utilizzando l'attributo VaryByControl. In alternativa, è possibile eseguirla a livello di codice impostando la proprietà VaryByControls nel PartialCachingAttribute.
Nota: La variazione dell'output del controllo utente nella cache in base ai parametri delle stringhe di query o ai parametri dei POST dei form verrà eseguita correttamente solo se il controllo utente esegue ed elabora il postback. Se il controllo utente esegue il postback alla pagina contenitore, questo tipo di memorizzazione nella cache dell'output del controllo utente non funzionerà correttamente.
Per memorizzare nella cache più versioni di un controllo utente in modo dichiarativo utilizzando l'attributo VaryByControl
Creare un controllo utente che esegue il postback.
Nel controllo utente includere una direttiva @ OutputCache con gli attributi Duration e VaryByControl.
Nota: Se si utilizza l'attributo VaryByControl nella direttiva, non è necessario specificare anche l'attributo VaryByParam, sebbene sia possibile includerlo e impostarlo su "None".
Impostare l'attributo VaryByControl sull'ID di un controllo in base al quale si desidera variare l'output del controllo utente.
Con la direttiva @ OutputCache riportata di seguito, ad esempio, si imposta la scadenza del controllo utente su 60 secondi e si varia l'output del controllo in base a un controllo server ASP.NET con ID uguale a State:
<%@ OutputCache Duration="60" VaryByControl="State" %>
Per memorizzare nella cache più versioni di un controllo utente a livello di codice utilizzando la proprietà VaryByControls
Nel codice creare un controllo utente che esegua il postback a se stesso.
Includere un PartialCachingAttribute all'inizio del codice del controllo utente.
Includere un valore per il parametro Duration e impostare il parametro VaryByControls sull'ID del controllo server ASP.NET contenuto nel controllo utente in base al quale si desidera variare l'output del controllo utente.
Nell'esempio di codice riportato di seguito Duration viene impostato su 60 secondi e VaryByControls su State. Questo codice dovrebbe essere incluso prima del codice che estende la classe UserControl.
[PartialCaching(60, null, State, null)]
<PartialCaching(60, null, State, null)>
Per memorizzare nella cache più versioni di un controllo utente in modo dichiarativo utilizzando l'attributo VaryByParam
Creare un controllo utente che esegue il post back a se stesso.
Nel controllo utente includere una direttiva @ OutputCache con gli attributi Duration e VaryByParam.
Nota: Se si include l'attributo VaryByControl nella direttiva @ OutputCache per un controllo utente, non è necessario specificare anche l'attributo VaryByParam.
Impostare l'attributo VaryByParam sulla stringa di query GET o sul parametro di POST dei form in base al quale si desidera variare il controllo utente.
Con la direttiva @ OutputCache riportata di seguito, ad esempio, si imposta la scadenza del controllo utente su 60 secondi e si varia l'output del controllo in base al valore di un POST dei form o al parametro della stringa di query denominato State.
<%@ OutputCache Duration="60" VaryByParam="State" %>
Per memorizzare nella cache più versioni di un controllo utente a livello di codice utilizzando la proprietà VaryByParams
Nel codice creare un controllo utente che esegua il postback a se stesso.
Includere un PartialCachingAttribute all'inizio del codice del controllo utente.
Includere un valore per il parametro Duration e impostare il parametro VaryByParams sulla stringa di query GET o sul parametro di POST dei form in base al quale si desidera variare l'output del controllo utente.
Nell'esempio di codice riportato di seguito Duration viene impostato su 60 secondi e VaryByParams su un POST dei form o su un parametro della stringa di query denominato State. Questo codice dovrebbe essere incluso prima del codice che estende la classe UserControl.
[PartialCaching(60, State, null, null)]
<PartialCaching(60, State, null, null)>
Vedere anche
Attività
Concetti
Cenni preliminari sull'inserimento nella cache in ASP.NET
Memorizzazione nella cache di pagine ASP.NET
Memorizzazione nella cache di più versioni di una pagina
Memorizzazione nella cache di più versioni dell'output del controllo utente