2011-11-15 4 views
5

Ho una pagina che ha controlli che sono cache di output (caching di output parziale). Si tratta di configurazione come questa:Cancella cache di output parziale

[PartialCaching(86400, null, null, "campaign.whatwhere", true)] 
public partial class controls_LatestEnquiriesListCached : System.Web.UI.UserControl 
{ 

... 

Con

public override string GetVaryByCustomString(HttpContext context, string custom) 
{ 
    if (custom == "campaign.whatwhere") 
    { 
     return (CampaignManager.CurrentCampaign.DefaultWorkTypeId ?? 0).ToString() + (CampaignManager.CurrentCampaign.DefaultEnquiryAreaId ?? 0).ToString(); 
    } 
    return base.GetVaryByCustomString(context, custom); 
} 

In Global.asax

Come posso messa a punto in modo da poter eliminare questo cache di output su una pagina specifica?

È possibile impostare come MyPageWithCachedControl.aspx?ClearCache=true ???

+0

duplicato esatto del http://stackoverflow.com/questions/565239/any-way-to-clear-flush-remove-outputcache – Ramesh

+0

anche http://stackoverflow.com/questions/37101/how-to-clear-outputcache-per-website-senza-restarting-app – Ramesh

+0

Come sono questi duplicati esatti? –

risposta

0

È possibile creare una pagina di aspx che non fa altro che cancellare la cache. Puoi prendere il parametro querystring e farlo eliminare dalla chiave di cache.

Oppure si può provare a trovare e gestore cache ASP.NET.

0

Si dovrebbe usare HttpResponse.RemoveOutputCacheItem(path) cancellare la cache di output in cui il percorso è il percorso virtuale assoluto del controllo di utente come specificato nella https://stackoverflow.com/a/37167/30594

0

Usa HTTPResponse.RemoveOutputCacheItem(pathofpage) per cancellare la cache di una pagina particolare.

Ad esempio:

private void Button1_Click(object sender, System.EventArgs e) 
{ 
    HttpResponse.RemoveOutputCacheItem("/form1.aspx"); 
}