javascript - FileContentResult - 防止浏览器缓存图像

标签 javascript asp.net-mvc asp.net-mvc-3 http caching

我正在从对操作方法的调用中返回图像 (png),我想停止浏览器缓存图像。

return File(reply, "image/png", "{0}_Graph".FormatWith(ciName));

我已经尝试了所有常见的方法,将一组不同的 header 附加到文件输出响应,但似乎没有一个对我有用。

基本上,我的操作方法会返回一个在服务器上生成的图表,并且可能会随时不同。我在客户端使用 Javascripts Image 对象并将其 src 设置为我的操作方法。

var image = new Image();
image.src = baseUrl + params;

每次请求相同的 URL 时,服务器都不会被命中。

我可以将一个随机数等附加到查询字符串,但我想知道是否有更好的方法。

最佳答案

您可以设置适当的 HTTP header 以防止缓存(我不知道如何在 ASP.NET 中执行此操作,但我想它会像 HTTP.Response.setHeader("foo", "bar"):

"Pragma-directive: no-cache"
"Cache-directive: no-cache"
"Cache-control: no-cache"
"Pragma: no-cache"
"Expires: 0"

如果您不喜欢随机数解决方案,则使用当前时间戳:

image.src = baseUrl + params + '&t=' + new Date().getTime();

关于javascript - FileContentResult - 防止浏览器缓存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257343/

相关文章:

javascript - 输入键以提交 Ajax 表单

c# - 使用 Entity Framework 时处理 ASP.NET MVC 中的必填字段

.net - 连接cshtml文件中的字符串

asp.net-mvc-3 - ASP.Net MVC。使动态图像 SEO 友好

c# - 在 MVC/C# 中格式化字符串

asp.net-mvc-3 - Jquery .Post不显示返回的数据

javascript - Minified angular2 - 有人成功完成此操作吗?

javascript - jQuery 函数只在被点击的元素上运行

javascript - 如何在 javascript 中允许删除、退格和禁用空格键?

asp.net-mvc - ASP.NET中MVC应用程序的结构应该是什么?