MVC缓存数据库映像

时间:2013-03-05 15:13:37

标签: asp.net-mvc caching

我正在使用MVC 4创建一个网站。对于项目要求,图像存储在数据库中。我有一个视图,我绑定模型,其中我有故事附带的图片的ID,然后我得到图像:

查看:

<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或从文件系统加载的其他图像。

有没有办法让这些图像被缓存? 问候和感谢。

2 个答案:

答案 0 :(得分:15)

您可以使用[OutputCache]属性修饰ShowImagen控制器操作:

[OutputCache(Duration = 3600, Location = OutputCacheLocation.Client, VaryByParam = "id")]
public ActionResult ShowImagen(int id)
{
    ...
}

答案 1 :(得分:0)

您是否尝试使用OutputCache属性修改操作方法?