6

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

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

4

2 回答 2

15

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

[OutputCache(Duration = 3600, Location = OutputCacheLocation.Client, VaryByParam = "id")]
public ActionResult ShowImagen(int id)
{
    ...
}
于 2013-03-05T15:17:42.243 回答
0

你试过用OutputCache属性装饰你的动作方法吗?

于 2013-03-05T15:17:46.433 回答