У меня есть приложение MVC 3, которое позволяет пользователям загружать файлы с некоторыми данными ввода.Я установил контроллер, который извлекает эти документы и буферизирует их для пользователя следующим образом:
[OutputCache(Duration = 1200, VaryByParam = "id")]
public ContentResult GetNarrative(int id)
{
Response.Clear();
Response.BufferOutput = true;
Response.ContentType = "application/octet-stream";
var narrative = attachRepo.GetNarrative(id);
if (narrative == null || narrative.Narrative == null)
return null;
Response.AddHeader("Content-Disposition",
string.Format("attachment;filename={0}",
Server.UrlEncode(narrative.Filename)));
Response.OutputStream.Write(narrative.Narrative.ToArray(),
0, narrative.Narrative.ToArray().Length);
Response.OutputStream.Flush();
return Content("");
}
Это работает хорошо и хорошо, интересно то, что когда у меня есть строка выходного кэша, мой firefoxдиалог загрузки выглядит так
Однако, когда я закомментирую строку выходного кэша, она выглядит как ожидаемый диалог
На самом деле это не проблема блокировки, так как в IE она прекрасно работает, а Chrome загружается по умолчанию, но мне любопытно, почему это происходит, и если кто-то сталкивался с этим и обходил его.
Спасибо!