Загрузка файла в IE не работает, когда включено кэширование - PullRequest
0 голосов
/ 27 января 2011

Я пытаюсь решить проблему с загрузкой файла, которая не работает в IE из приложения ASP.NET MVC.

Действие контроллера выглядит примерно так:

    [HttpGet]
    [OutputCache(Duration = 0, NoStore = true, VaryByParam = "*")]
    public FileResult GetTemplate(int id)
    {
        var data = GetData(id);

        return File(Encoding.ASCII.GetBytes(data), MimeType.Csv.Type, "template.csv");
    }

Загрузка начинается с вызова window.open() в javascript.Он отлично работает в Firefox, но не в IE.IE download error

Если я удаляю атрибут OutputCache, он отлично работает в IE.

Почему строка OutputCache прерывает загрузку в IE?

Ответы [ 2 ]

1 голос
/ 08 марта 2013

Чтобы ответить на ваш последний вопрос, вы ищете объяснение, вот оно:

http://support.microsoft.com/kb/323308

Это фактически ошибка в IE.

0 голосов
/ 27 января 2011

Две возможности:

  1. Не использовать window.open, а простая ссылка для загрузки
  2. Использовать application/octet-stream:

    return File(
        Encoding.ASCII.GetBytes(data), 
        "application/octet-stream", 
        "template.csv"
    );
    
...