我使用這個MVCDonutCaching Nuget package,因爲在tutorial他們說這是可能的兒童行動。MVCDonutCaching - 如何刪除兒童動作緩存MVC甜甜圈緩存
This question對我不起作用,或者我沒有正確理解它。
如果有人知道如何刪除具有標準OutputCache
屬性的子緩存,那麼也可以!
我已經搜索了這個,但我找不到它。在這裏看到一個例子:HomeController的(主頁)的
Index操作:
[AllowAnonymous]
public ActionResult Index()
{
return View();
}
ChildAction的NewsController的:HomeController的的
[AllowAnonymous]
[ChildActionOnly]
[DonutOutputCache(Duration = 600, Location = OutputCacheLocation.Server)]
public PartialViewResult LastArticles(int numberOfArticles)
{
return PartialView("_LastArticles", db.NewsArticles
.Include(i => i.Tags)
.Include(i => i.SeoTags)
.Where(n => n.Status == PublishStatus.Published)
.OrderByDescending(n => n.PublishDate)
.Take(numberOfArticles)
.ToList());
}
索引視圖:
@{ Html.RenderAction("LastArticles", "News", new { numberOfArticles = 2 }); }
清除緩存我有一個Admin ar在我的應用程序中,通過一個控制器和一個動作來更新子動作存儲的數據。所以當新聞文章更新時。應該在主頁上刷新緩存。
在這一行動,我有以下代碼:
var cacheManager = new OutputCacheManager();
cacheManager.RemoveItem("News", "LastArticles", new { area = "", numberOfArticles = 2 });
cacheManager.RemoveItem("News", "LastArticles", new { area = "" });
我試過多個版本,但沒有運氣。有誰能夠幫助我?
感謝Marino:解決方法是使用'cacheManager.RemoveItem(「News」,「LastArticles」,new {numberOfArticles = 2});' – 2015-01-21 12:55:56