清除部分输出缓存

时间:2011-11-15 06:44:22

标签: c# asp.net global-asax fragment-caching

我有一个页面,其控件是输出缓存(部分输出缓存)。这些设置如下:

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

...

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);
}

Global.asax

如何设置以便我可以在特定页面上清除此输出缓存?

是否可以设置为MyPageWithCachedControl.aspx?ClearCache=true ???

3 个答案:

答案 0 :(得分:0)

您可以创建一个除了清除缓存之外什么都不做的aspx页面。您可以使用querystring参数并按缓存键删除它。

或者您可以尝试查找和ASP.NET缓存管理器。

答案 1 :(得分:0)

您应该使用HttpResponse.RemoveOutputCacheItem(path)清除输出缓存,其中path是https://stackoverflow.com/a/37167/30594

中指定的用户控件的虚拟绝对路径

答案 2 :(得分:0)

使用HTTPResponse.RemoveOutputCacheItem(pathofpage)清除特定网页的缓存。

例如:

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