Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 清除mvc3中的缓存。_Jquery_Asp.net Mvc_Asp.net Mvc 3_C# 4.0 - Fatal编程技术网

Jquery 清除mvc3中的缓存。

Jquery 清除mvc3中的缓存。,jquery,asp.net-mvc,asp.net-mvc-3,c#-4.0,Jquery,Asp.net Mvc,Asp.net Mvc 3,C# 4.0,我正在使用Sql server上载图像,上载的图像会立即反映在下面的网格中。我的问题是,每当我更改或编辑图片时,数据库中的图片都会更改,但网格显示的是我删除的前一个图像。我必须注销并再次登录才能看到更改。有没有办法克服这个问题?是否有任何方法可以在每次重新加载网格时清除缓存?您可以尝试在下面的帖子中写入自己的属性,例如[no cache],并可以在控制器上使用它来防止缓存 要禁用客户端缓存,还可以对操作结果使用[OutputCacheAttribute]。下面的帖子可能会有所帮助 [Outp


我正在使用Sql server上载图像,上载的图像会立即反映在下面的网格中。我的问题是,每当我更改或编辑图片时,数据库中的图片都会更改,但网格显示的是我删除的前一个图像。我必须注销并再次登录才能看到更改。有没有办法克服这个问题?是否有任何方法可以在每次重新加载网格时清除缓存?

您可以尝试在下面的帖子中写入自己的属性,例如[no cache],并可以在控制器上使用它来防止缓存

要禁用客户端缓存,还可以对操作结果使用[OutputCacheAttribute]。下面的帖子可能会有所帮助

[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] 


还有其他方法可以禁用缓存,但我想上述两种方法中的一种应该可以完成这项工作。希望这有帮助

您可以在项目中使用特定catch的持续时间:

看看这个:

如果缓存是使用Jquery ajax在客户端形成的,那么使用:

$.ajax({
    cache: false
    //rest of your ajax setup
});

除了ajax调用中的
cache:false
之外,还可以针对动作方法创建一个无缓存动作过滤器属性

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class NoCacheAttribute : ActionFilterAttribute
{
  public override void OnResultExecuting(ResultExecutingContext filterContext)
  {
     filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
     filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
     filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
     filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
     filterContext.HttpContext.Response.Cache.SetNoStore();

     base.OnResultExecuting(filterContext);
  }
}

这是很好的解释。希望有帮助。

尝试刷新页面。这不是最好的做法,但我认为会奏效。