0

このMVCDonutCaching Nuget パッケージを使用しているのは、チュートリアルで、これは子アクションで可能であると述べているためです。

この質問がうまくいかなかったか、正しく理解できませんでした。

標準属性で子キャッシュを削除する方法を誰かが知っていればOutputCache、それも問題ありません。

これを探しましたが、見つかりません。ここに例を見てください:

HomeController (ホームページ) の Index アクション:

[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 }); }

キャッシュをクリアするために、子アクションによって保存されたデータを更新するコントローラーとアクションを含む管理領域をアプリケーションに用意しました。そのため、ニュース記事が更新されたとき。ホームページのキャッシュが更新されるはずです。

そのアクションには、次のコードがあります。

var cacheManager = new OutputCacheManager();
cacheManager.RemoveItem("News", "LastArticles", new { area = "", numberOfArticles = 2 });
cacheManager.RemoveItem("News", "LastArticles", new { area = "" });

複数のバージョンを試しましたが、うまくいきませんでした。誰でも私を助けることができますか?

4

1 に答える 1