ASP.Net MVC 3 RTM. Я пытаюсь использовать атрибут OutputCache в действии, но, похоже, не работает. Вот запрос Http и ответ.
Request URL:http://localhost/MyApp/Employee.mvc/GetImage?userId=myUserId
Request Method:GET
Status Code:200 OK
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Cookie:ASP.NET_SessionId=sessionIdStuff
Host:localhost
Pragma:no-cache
Referer:http://localhost/MyApp/Employee/Review/1/Index
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
AppleWebKit / 534.13 (KHTML, как Gecko)
Chrome / 9.0.597.98 Safari / 534.13
Параметры строки запроса
идентификатор пользователя: MyUser
Заголовки ответа
Cache-Control: частный, без магазина, максимальный возраст = 3484
Content-Length:1428
Content-Type:image/jpeg
Date:Wed, 16 Feb 2011 22:59:14 GMT
Expires:Wed, 16 Feb 2011 23:57:19 GMT
Last-Modified:Wed, 16 Feb 2011 22:57:19 GMT
Server:Microsoft-IIS/5.1
Vary:*
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:3.0
X-Powered-By:ASP.NET
Вот контроллер:
[HttpGet, OutputCache(Location= OutputCacheLocation.Client, VaryByParam="userId", Duration=3600, NoStore=true)]
public FileContentResult GetImage(string userId)
{
byte[] result;
using (var client = new WebClient())
{
client.Credentials = CredentialCache.DefaultCredentials;
result = client.DownloadData(string.Format(IntranetUrl, userId));
}
return File(result, "image/jpeg");
}
и мой вид:
<img alt="Employee Picture" src='@Url.Action("GetImage", "Employee", new { userId = Model.UserId, area=""})' width="75px" height="100px" />
Я попытался сравнить с другими статическими изображениями, которые кэшируются, и единственные различия, где эти строки:
Cache-Control: частный, без магазина,
макс возраста = 3484
Это включено в мои действия, но не в статические изображения. Кроме того, у статических изображений был ETag, но мой ответ действия не сделал.
Может кто-нибудь помочь, почему это не может быть кэшировано в браузере?
Спасибо за любую помощь ..