如何以编程方式为特定用户控件使用输出缓存

本文关键字:控件 用户 缓存 输出 编程 方式 | 更新日期: 2023-09-27 18:28:57

我想以编程方式将输出缓存应用于特定控件。但当我使用此代码时,它会将所有页面和其他用户控件存储在缓存输出中。

    if (Session["id"] != null)
    {            
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetValidUntilExpires(true); 
     }

如何以编程方式为特定用户控件使用输出缓存

HttpResponse.Cache属性获取整个网页的缓存策略(如过期时间、隐私设置和vary子句)。这就是上面的代码缓存整个网页的原因。

要缓存用户控件,可以使用PartialCachingAttribute。Is表示您的控件支持片段缓存。然后通过UserControl.CachePolicy属性以编程方式更改必要的缓存属性:

[PartialCaching(0)]
public partial class MyControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["id"] != null)
        {            
            this.CachePolicy.Duration = TimeSpan.FromSeconds(60);
        }
    }
}

其他信息可以在MSDN上的ASP.NET页面文章的缓存部分中找到。