这是我的ViewComponent:
public class Categories: ViewComponent
{
private readonly ICategoryService _categories;
public Categories(ICategoryService categories)
{
_categories = categories;
}
public IViewComponentResult Invoke()
{
var cat = _categories.GetCategories();
return View(viewName: "Default", model: cat);
}
}
以下是我在视图中使用它的方式:
@await Component.InvokeAsync("Categories")
我尝试使用缓存:
[ResponseCache(Duration = 99999999)]
以上调用方法但无效。
是否可以对视图组件使用缓存?怎么样?
答案 0 :(得分:14)
您可以通过将View Components包装在缓存标记帮助程序中来缓存它们,如下所示:
<cache expires-after="@TimeSpan.FromMinutes(5)">
@await Component.InvokeAsync("Categories")
</cache>