2011-01-26 2 views
0

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

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

[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?

+0

Мне удалось заставить его работать, изменив строку 'OutputCacheAttribute' на' [OutputCache (Duration = 1200, Location = OutputCacheLocation.Client, VaryByParam = "*", NoStore = false)] '. Мой вопрос все еще сохраняется, но я не ищу решение или обходное решение. Я пытаюсь понять, почему он не работает в IE, и я ищу объяснения. – GiddyUpHorsey

ответ

1

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

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

Это действительно ошибка в IE.

0

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^