繼上篇在套用 Master Page 下使用 OutputCache後,這篇就來寫一下如何清 OutputCache。
清除單頁 OutputCache 的方式可使用下列語法
?
1 | HttpResponse.RemoveOutputCacheItem( "/test.aspx" ); |
參考來源: http://www.dotblogs.com.tw/ajun/archive/2008/02/18/1078.aspx
但如果想要清除所有的 OutputCache,上網找到一個方法,實際測試是可以 WORK 的,以下為sample。
Global.asax
?
1 2 3 4 5 6 7 8 9 10 11 |
<%@ Application Language="C#" %> < script runat = "server" > void Application_Start(object sender, EventArgs e) { HttpContext.Current.Cache.Insert("task-index", DateTime.Now); } </ script > |
Default.aspx
?
1 2 3 4 5 6 7 8 9 10 11 12 |
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ OutputCache Location="Server" VaryByParam="*" Duration="60" %> . . . < form id = "form1" runat = "server" > < asp:label id = "lblNow" runat = "server" ></ asp:label > </ form > . . . |
Default.aspx.cs
?
1 2 3 4 5 6 |
protected void Page_Load( object sender, EventArgs e) { Response.AddCacheItemDependency( "task-index" ); lblNow.Text = DateTime.Now.ToString( "yyyy/MM/dd HH:mm:ss" ); } |
ClearOutputCache.aspx
?
1 2 3 4 5 6 7 8 |
. . . < asp:button id = "btnClear" onclick = "btnClear_Click" runat = "server" text = "Clear" > . . . </ asp:button > |
ClearOutputCache.aspx.cs
?
1 2 3 4 |
protected void btnClear_Click( object sender, EventArgs e) { HttpContext.Current.Cache.Insert( "task-index" , DateTime.Now); } |
如果是使用 UserControl ,可以參考這篇 ASP.NET: clear user control output cache
註:清除 OutputCache 的功能要放在另一頁,如果要做在同一頁可以使用 AJAX 技術。