Как кэшировать вывод метода действия, который возвращает изображение в представление в asp.net mvc?

Я уже читал много постов о кешировании, но ни один из них не соответствует моим потребностям В моем приложении MVC 3 у меня есть метод действия GetImage (), который возвращает файл типа изображения. Затем я использую этот метод в представлении для отображения изображения:

<img width="75" height="75" src="@Url.Action("GetImage", "Store", new {productId = item.ProductId})"/>

Я хочу кешировать изображения на сервере. Итак, что я уже пробовал:

1) использовать OutputCacheAttribute:

    [HttpGet, OutputCache(Duration = 10, VaryByParam = "productId", Location = OutputCacheLocation.Server, NoStore = true)]
    public FileContentResult GetImage(int productId)
    {
        var p = _productRepository.GetProduct(productId);
        if (p != null)
        {
            if (System.IO.File.Exists(GetFullProductImagePath(productId)))
            {
                var image = Image.FromFile(GetFullProductImagePath(productId));
                return File(GetFileContents(image), "image/jpeg");
            }
        }
        var defaultPath = AppDomain.CurrentDomain.BaseDirectory +
                             ConfigurationManager.AppSettings["default-images-directory"];

        var defaultImage = Image.FromFile(Path.Combine(defaultPath, "DefaultProductImage.jpg"));
        return File(GetFileContents(defaultImage), "image/jpeg");
    }

Изображения не кэшируются (я получаю статус: 200 OK)

2) использовать следующие методы Response.Cache в методе GetImage ():

    public FileContentResult GetImage(int productId)
    {
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetMaxAge(new TimeSpan(0, 0, 0, 10));
        Response.Cache.SetExpires(DateTime.Now.Add(new TimeSpan(0, 0, 0, 10)));
        Response.Cache.AppendCacheExtension("must-revalidate, proxy-revalidate");        
        // other code is the same
    }

Изображения не кэшируются

3) Здесь я получаю: 304 Not Modified, но метод GetImage () ничего не возвращает (пустое изображение)

    public FileContentResult GetImage(int productId)
    {
        Response.StatusCode = 304;
        Response.StatusDescription = "Not Modified";
        Response.AddHeader("Content-Length", "0");     
        // other code is the same
    }

Вопрос: Как кэшировать выходные данные этого метода действия на сервере?

Ответы на вопрос(1)

Ваш ответ на вопрос