asp.net-mvc - ASP MVC 3 OutputCache避免缓存当前请求

标签 asp.net-mvc asp.net-mvc-3 caching outputcache

我开始在我的网站上使用 OutputCache。 我遇到的问题是,当用户更新项目时,我需要重置该项目的缓存。

我使用以下方法做到了这一点:

var urlToRemove = Url.Action("Details", "Dress", new {id = model.Id});
Response.RemoveOutputCacheItem(urlToRemove);

在“编辑”操作中,我还将更新成功消息设置为 TempData,并在下一个请求时显示它。问题在于该消息保留在缓存的响应中。

你知道如何避免在操作中缓存吗?像这样的东西:

[OutputCache(Duration = 3600, VaryByParam = "id")]
public ViewResult Details(int id)
{  
  if(NotificationHelper.HasNotifications)
    Response.DoNotCache();
    .....

我不能使用相同的技巧...因为页面在渲染后被添加到缓存中。所以我无法从其主体的缓存中排除某个操作。

最佳答案

您所描述的内容有时被称为“ donut 洞缓存”,因为您想要缓存除中间的一些动态内容之外的所有内容。

以下是您可能需要查看的一些资源:

关于asp.net-mvc - ASP MVC 3 OutputCache避免缓存当前请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179452/

相关文章:

asp.net - ASP.NET v4无扩展URL功能在IIS 6.0上不起作用

.net - 使用 Razor 模板在 MVC3 中发送电子邮件

java - Hibernate 禁用查询缓存

caching - Janusgraph 缓存

java - 如何实现最近使用的缓存

ajax - Umbraco AJAX 调用不起作用

asp.net-mvc - 部分 View 模型无法解析

异常后 ASP.NET session 状态丢失

c# - FluentValidation NotEmpty 消息未显示

c# - 如何删除换行符