我在控制器上有一个返回文件的方法
public FileResult DownloadFile(int id)
{
var file = _repository.GetInidividualFile(id);
return File(file.FileBinary, file.ContentType, file.FileName);
}
文件对象正在返回值,但IE9没有提取内容类型。我目前的文件类型列表是:
'应用/ PDF'
'应用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet'
“应用/ vnd.ms-Excel的
所有其他浏览器似乎工作正常,但IE似乎忽略了扩展。我遇到的问题是,由于文件是在没有扩展名的情况下下载的,因此系统会提示用户选择要打开文件的应用程序,但他们不知道。
我尝试过firefox,chrome,safari和opera,一切都很好
以下是调试器的视图,显示了返回的值
这是fiddler的输出,显示了内容类型:
HTTP / 1.1 200确定
服务器:ASP.NET Development Server / 10.0.0.0
日期:2013年2月19日星期二,格林尼治标准时间10:16:41
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:3.0
内容 - 处置:附件; filename =“配置工具”
缓存控制:私有
Content-Type:application / vnd.openxmlformats-officedocument.spreadsheetml.sheet
内容长度:491470
连接:关闭
答案 0 :(得分:1)
return File(file.FileBinary, "application/pdf", "test");
无效,但
return File(file.FileBinary, "application/pdf", "test.pdf");
确实