2017-05-19 4 views
0

MVCアプリケーションのキャッシュをクリアするために、複数回見たことのある種類の「トリック」がありますMisc/ClearCacheを使用してURL経由でAsp.net MVCキャッシュをクリアする

http://somewebsite.com/Misc/ClearCache

私はそれを数回使用し、正直なところ、私はそれが動作する方法を正確に理解していなかったと私はそれについてのドキュメントや記事を発見していません。

これについて少し説明できる人はいますか?

多くのありがとうございます。

+0

私はあなたがこれを使うことができると考えています。http:// st ackoverflow.com/a/16532195/5224021、ajaxリクエストでiframeにロードする – GibralterTop

答えて

0

私のコメントで間違っていました.Ajaxは必要ありませんでした。ここで

はあなたのjQueryのようになります。

$("#clearCache").click(function() { 
    if (!$(this).disabled) { 
     $('<iframe id="cacheCleared" src="../../Misc/ClearCache"></iframe>').appendTo('body').hide(); 
    } 
}); 

次に、あなたその他コントローラーにあなたが持っているでしょう:

public ActionResult ClearCache() 
{ 
    foreach (System.Collections.DictionaryEntry entry in HttpContext.Cache) 
    { 
     HttpContext.Cache.Remove((entry.Key).ToString()); 
    } 

    return View(); 
} 

を、あなたのiframeを追加したら、それはそのソースからコンテンツをロードしようとします。そのソースを読み込もうとすると、コントローラーのClearCacheに衝突し、すべてをクリアする必要があります。

EDIT: あなたはそれのためのビューを構築しないようにしたい場合return View();前にこれを追加します。

0

プラグインまたはサードパーティのライブラリを使用しているかどうかわかりません。キャッシュ場合http://somewebsite.com/Controller/ClearCache

:のようなコントローラ/ actionNameの持つブラウザから

public void Clearcache() 
{ 
HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
     HttpContext.Current.Response.Cache.SetValidUntilExpires(false); 
     HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
     HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     HttpContext.Current.Response.Cache.SetNoStore(); 
} 
  • Callメソッド:

    1. は、などをclearcacheするWebメソッドを記述します。しかし、それは同じくらい簡単です同じ方法で必要に応じて削除できる第三者です

  • 関連する問題