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

C# 如何以编程方式为特定用户控件使用输出缓存?,c#,asp.net,C#,Asp.net,我希望以编程方式将输出缓存应用于特定控件。但当我使用这段代码时,它将所有页面和其他用户控件存储在缓存输出中 if (Session["id"] != null) { Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.C

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

    if (Session["id"] != null)
    {            
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetValidUntilExpires(true); 
     }
属性获取整个网页的缓存策略(例如过期时间、隐私设置和vary子句)。这就是上面的代码缓存整个网页的原因

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

[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上的文章中找到。

看起来与这个问题相同:Alex是客户端还是服务器端的缓存存储。我想在客户端存储缓存。@pargan,部分缓存只在服务器端工作。完全缓存可以在客户端和服务器端工作,也可以同时在客户端和服务器端工作。你能推荐我吗。我该怎么做@帕尔根,恐怕这是不可能的