目前,我有以下操作从我的数据库中返回文件(图像、PDF等):
//
// GET: /FileManager/GetFile/ID
[OutputCache(Duration = 600, VaryByParam = "ID")]
public ActionResult GetFile(int ID)
{
FileService svc = new FileService(new SqlFileRepository(base.ConnectionString));
KsisOnline.Data.File result = svc.GetFileByID(ID);
return File(result.Data, result.MimeType, result.UploadFileName);
}
我正在使用
OutputCache
属性,但我不知道是否使用正确,也不知道如何为此进行优化。目前的代码似乎在Firefox(3)中具有缓存功能,但在IE(7)中没有。由于某种原因,IE每次都会从数据库请求图像(这显然是很糟糕的),我不知道该如何解决它。确实,IE不正确地支持标准,但也许我仍然没有遵循一些首选缓存约定。我真的很希望得到一些帮助,以便在跨浏览器的最小DB命中和缓存支持下工作。
编辑: 要查看上面的代码示例或使用浏览器/工具对其进行分析,请参阅此链接。