По умолчанию Asp.Net MVC (по крайней мере, моя установка), похоже, отправляет заголовок со значением
Cache-Control: private, s-maxage=0
. Мне нужно удалить часть s-maxage = 0. . Причина в том, что IE6 неправильно обрабатывает заголовок content-disposition: attachment, если этот заголовок присутствует.
Конечный эффект, который я наблюдаю, заключается в том, что если пользователь выбирает Открыть загруженный файл вместо его сохранения, он фактически не сохраняется. Разница между рабочей версией, отличной от mvc, и нерабочей версией mvc заключается только в этом заголовке.
Рабочий ответ:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: Thu, 10 Feb 2011 19:35:47 GMT
X-AspNet-Version: 2.0.50727
Content-Disposition: attachment; filename=results.txt
Cache-Control: private
Content-Type: text/plain; charset=iso-8859-1
Content-Length: 210
Connection: Close
<<DATA>>
Нерабочий ответ:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: Thu, 10 Feb 2011 20:24:04 GMT
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 1.0
Content-Disposition: attachment; filename=results.txt
Cache-Control: private, s-maxage=0
Content-Type: text/plain
Content-Length: 90
Connection: Close
<<DATA>>