È possibile utilizzare più parametri VaryByCustom durante la memorizzazione nella cache di un controllo utente?
Domanda
Ho provato questo in un paio di modi diversi, ma non funziona per qualche motivo. È anche possibile?
Soluzione
Sì. Separali nella tua dichiarazione per punto e virgola.
Altri suggerimenti
Se si esegue l'override di GetVaryByCustomString () nel file Global.asax.cs, è possibile passare un elenco delimitato da punti e virgola di valori che è necessario analizzare.
Esiste un valore integrato (Browser) che verrà utilizzato se l'attributo specificato non esiste.
È possibile utilizzare più parametri separandoli con un punto e virgola, ma è necessario implementare la logica di suddividerli da soli. Ciò significa che puoi usare qualsiasi personaggio come separatore, perché devi analizzarlo da solo.
Probabilmente hai la precedenza su GetVaryByCustomString (contesto HttpContext, stringa personalizzata)
nel tuo global.asax. Il parametro personalizzato
conterrà tutto ciò che passi usando VaryByCustom
, come questo
<%@ OutputCache Duration="86400" VaryByParam="none" VaryByCustom="custom1;custom2" %>
Nota aggiuntiva: base.GetVaryByCustomString
non implementa alcuna funzionalità di suddivisione delle stringhe e farà qualcosa solo quando browser
viene passato come valore. Altrimenti restituirà null
.