我想以编程方式将输出缓存应用于特定控件.但是,当我使用此代码时,它将所有页面和其他用户控件存储在缓存输出中.
if (Session["id"] != null)
{
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
}
Run Code Online (Sandbox Code Playgroud)
HttpResponse.Cacheproperty获取整个网页的缓存策略(如过期时间,隐私设置和各种条款).这就是上面的代码缓存整个网页的原因.
要缓存您可以使用的用户控件PartialCachingAttribute.是说您的控件支持片段缓存.然后通过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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
可以在MSDN 上的ASP.NET页面 articke 的缓存部分中找到其他信息.
| 归档时间: |
|
| 查看次数: |
2097 次 |
| 最近记录: |