2013-02-18 37 views
1

我有一個方法,一個控制器,它返回文件返回FileResult不拿起MIME類型IE9

public FileResult DownloadFile(int id) 
{ 
    var file = _repository.GetInidividualFile(id); 
    return File(file.FileBinary, file.ContentType, file.FileName); 
} 

File對象是回正確的返回值,但IE9不會拿起內容類型上。文件類型目前名單上有有:

'應用程序/ PDF'

'應用程序/ vnd.openxmlformats-officedocument.spreadsheetml.sheet'

'應用程序/ vnd.ms-Excel的

所有其他瀏覽器似乎工作正常,但IE似乎忽略了擴展名。我遇到的問題是,因爲該文件沒有被擴展下載,所以系統會提示用戶選擇打開文件的應用程序,但他們不知道。

我曾嘗試在火狐,Chrome,Safari和Opera,一切都很好

這裏的返回

debug

下面是從小提琴手顯示輸出顯示值調試器視圖內容類型:

HTTP/1.1 200 OK

服務器:ASP.NET DEVELOPME NT服務器/ 10.0.0.0

日期:星期二,2013年2月19日10點16分41秒GMT

X-ASPNET-版本:4.0.30319

X-AspNetMvc-版本:3.0

內容處理:附件;文件名= 「配置工具」

緩存控制:私人

內容類型:應用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet

的Content-Length:491470

連接:關閉

+0

您是否檢查過Fiddler顯示的內容類型? – merekel 2013-02-18 17:13:53

回答

1

經過一番混亂後,我終於找到了這是什麼。儘管有內容類型,但IE仍希望擴展名爲文件名。所以,

return File(file.FileBinary, "application/pdf", "test"); 

將無法​​正常工作,但

return File(file.FileBinary, "application/pdf", "test.pdf"); 

一樣。

+0

+1你的回答救了我! – 2013-12-09 13:08:42