2011-06-27 12 views
6

asp.net-mvcのWebサイトでキャッシュされたページを簡単に消去する方法が必要です。asp.net-mvcで(ページおよびパーシャルビュー)OutputCacheを強制的に削除できますか?

私は高価なDB操作をしているので、頻繁にサイトを高速化するためにoutputcachingを使用しています。

[OutputCache(Duration = 30000)] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [OutputCache(Duration = 30000, VaryByParam = "*")] 
    public ActionResult GetData(MyParams myParams) 
    { 
     return PartialView("MyView", GetVM(myParams)); 
    } 

(物事がうまくいかない)一定の時間、私は(関係なく、既存のキャッシュ期間の)このキャッシュをクリアexplicitallyしたいあり

がいっぱいのため、とにかくそこにある:私はこのようなコードを持っています部分ページOutputcachingを使用してキャッシュされたページを削除し、完全なコードを実行しますか?

注:私はこの質問はhereのようにasp.netの周りに一般的には、既に求められていることがわかりますが、私はこれを試してみましたが、それはいないようasp.net-MVC固有のソリューション

を参照してくださいいけません仕事に:

public ActionResult ClearCache() 
{ 
     this.HttpContext.Response.RemoveOutputCacheItem("/MyController/Index.aspx"); 
     this.HttpContext.Response.RemoveOutputCacheItem("/MyController/MyView.ascx"); 
} 

答えて

1

を私はあなたがここにあなたの答えを見つけることだと思う:Clearing Page Cache in ASP.NET

+0

その答えはMVCベースのソリューションに焦点を当てていないようです。私はキャッシュをクリアするために ".aspx"拡張子を指定するよりも良い方法があると思います。 。 – leora

+0

さらに答えを見ると、MVCに焦点を当てた2番目と3番目の回答にいくつかのリンクとアイデアがあります。 –

+0

私が知る限り、MVCアクションでは機能しません –

0

あなたはこのような何かを行うことができますMVCベースのソリューションについて

this.HttpContext.Response.RemoveOutputCacheItem(Url.Action("MyAction","MyController",new{ id = 1234})); 
関連する問題