MVC缓存数据库图像
问题描述:
我正在使用MVC 4创建网站。对于项目需求,图像存储在数据库中。我有我绑定在我随行的故事画面的ID模型的图,然后我得到的图像:MVC缓存数据库图像
查看:
<img src='<%= Url.Action("ShowImagen", "Home", new {id = item.IdImagen}) %>' style="width: 300px;
height: 200px;" />
控制器:
public FileResult ShowImagen(int id)
{
if (id > 0)
{
var imageData = new NoticiaRepository().GetImagen(id);
return File(imageData, "image/jpg");
}
else
{
return null;
}
}
有了这个,并使用Chrome进行检查,我发现当我重新加载页面时,它不会从缓存中加载图像,就像.css或从文件系统加载的其他图像一样。
有没有什么办法让这些图像被缓存? 问候和感谢。
答
你可以装饰与[OutputCache]
属性您ShowImagen
控制器动作:
[OutputCache(Duration = 3600, Location = OutputCacheLocation.Client, VaryByParam = "id")]
public ActionResult ShowImagen(int id)
{
...
}
谢谢,我尝试了OutputCache,但没有使用Location参数。 – Dani 2013-03-05 16:28:42
谢谢,它完美的作品! – WhatsInAName 2014-01-23 21:10:50
@ darin-dimitrov如何在某个时候使缓存失效? (例如,如果一个图像的内容改变) – RazvanR 2017-11-01 12:35:21