2011-02-26 8 views
5

私は私が持っている、私のホームコントローラで、私のホームページの.NET MVC 3のドーナツのキャッシング機能を利用しようとしています:ChildActionでOutputCacheを削除するには?

public ActionResult Index() 
{ 
    return View(); 
} 

[ChildActionOnly] 
[OutputCache(Duration=3600)] 
public ActionResult IndexMain() 
{ 
    return PartialView(ViewModelRepository.GetIndexViewModel()); 
} 

私は私の見解、私が持っている:

<% Html.RenderAction("IndexMain");%> 

これはすべて正常に動作します。しかし、データ変更時、私は実行します。

var urlToRemove = Url.Action("IndexMain", "Home"); 
Response.RemoveOutputCacheItem(urlToRemove); 

RemoveOutputCacheItemはエラーなしで実行されますが、ChildActionキャッシュは無効になりません。プログラムでChildActionからキャッシュ項目を削除する方法はありますか?

+0

カップルより多くのリンク:これは、問題とその解決策を説明しhttp://stackoverflow.com/a/7530265/63733、http://thenullreference.com/blog/fixing-the-asp -net-mvc-3-outputcache属性-for-honors-some-web-config-settings /、http://stackoverflow.com/a/7117242/63733 – marapet

答えて

5

は、この特定の問題に対処するためのNuGetパッケージがありますようにVaryByParam or VaryByCustom

+1

これが唯一の方法です本格的な再実装を使わずに行ってください。 – marapet

+0

この回答にバウンティが授与しました。評判のポイントを無駄にしません... – marapet

関連する問題