MVCDonutCaching - 如何删除子动作缓存 MVC Donut Caching
MVCDonutCaching - how to remove Child action cache MVC Donut Caching
我正在使用这个 MVCDonutCaching Nuget package because in the tutorial 他们说这可以通过子操作实现。
This question 对我不起作用,或者我理解不正确。
如果有人知道如何使用标准 OutputCache
属性删除子缓存,那也没关系!
我搜索过这个,但找不到。看这里的例子:
HomeController(主页)的索引动作:
[AllowAnonymous]
public ActionResult Index()
{
return View();
}
NewsController 的 ChildAction:
[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());
}
HomeController 的索引视图:
@{ Html.RenderAction("LastArticles", "News", new { numberOfArticles = 2 }); }
为了清除缓存,我在我的应用程序中有一个 Admin 区域,其中有一个控制器和操作来更新子操作存储的数据。因此,当更新新闻文章时。缓存应该在主页上刷新。
在该操作中,我有以下代码:
var cacheManager = new OutputCacheManager();
cacheManager.RemoveItem("News", "LastArticles", new { area = "", numberOfArticles = 2 });
cacheManager.RemoveItem("News", "LastArticles", new { area = "" });
我尝试了多个版本,但都没有成功。有人可以帮助我吗?
我认为您不应该明确定义(空白)区域。尽管该区域是路由的重要组成部分,但 MVCDonutCaching 在定义内部键时做了一些奇怪的事情。也许 MVCDonutCache 有一个关于区域的错误。
我正在使用这个 MVCDonutCaching Nuget package because in the tutorial 他们说这可以通过子操作实现。
This question 对我不起作用,或者我理解不正确。
如果有人知道如何使用标准 OutputCache
属性删除子缓存,那也没关系!
我搜索过这个,但找不到。看这里的例子:
HomeController(主页)的索引动作:
[AllowAnonymous]
public ActionResult Index()
{
return View();
}
NewsController 的 ChildAction:
[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());
}
HomeController 的索引视图:
@{ Html.RenderAction("LastArticles", "News", new { numberOfArticles = 2 }); }
为了清除缓存,我在我的应用程序中有一个 Admin 区域,其中有一个控制器和操作来更新子操作存储的数据。因此,当更新新闻文章时。缓存应该在主页上刷新。
在该操作中,我有以下代码:
var cacheManager = new OutputCacheManager();
cacheManager.RemoveItem("News", "LastArticles", new { area = "", numberOfArticles = 2 });
cacheManager.RemoveItem("News", "LastArticles", new { area = "" });
我尝试了多个版本,但都没有成功。有人可以帮助我吗?
我认为您不应该明确定义(空白)区域。尽管该区域是路由的重要组成部分,但 MVCDonutCaching 在定义内部键时做了一些奇怪的事情。也许 MVCDonutCache 有一个关于区域的错误。