Asp.net mvc 3 使用MVC3复制内容处置标头

Asp.net mvc 3 使用MVC3复制内容处置标头,asp.net-mvc-3,browser,download,Asp.net Mvc 3,Browser,Download,我试图用浏览器打开pdf文件或其他文件类型,如图像,但ff和chrome给出了重复内容错误。我正在使用下面的代码打开文件 Response.Contentype = file.ContentType; Response.AppendHeader("Content-Disposition",string.Format("inline;filename=\"{0}\"",file.Filename)); return File(file.Data,file.ContentType,file.File

我试图用浏览器打开pdf文件或其他文件类型,如图像,但ff和chrome给出了重复内容错误。我正在使用下面的代码打开文件

Response.Contentype = file.ContentType;
Response.AppendHeader("Content-Disposition",string.Format("inline;filename=\"{0}\"",file.Filename));
return File(file.Data,file.ContentType,file.FileName);

删除代码的前两行。不需要它们。
返回文件(File.Data、File.ContentType、File.FileName)
方法已将
ContentType
(由于第二个参数)和
Content Disposition
头添加到
附件
(由于第三个参数)

如果不希望将内容处置标题设置为附件,但
inline
,请删除第三个参数:

return File(file.Data, file.ContentType);

删除代码的前两行。不需要它们。
返回文件(File.Data、File.ContentType、File.FileName)
方法已将
ContentType
(由于第二个参数)和
Content Disposition
头添加到
附件
(由于第三个参数)

如果不希望将内容处置标题设置为附件,但
inline
,请删除第三个参数:

return File(file.Data, file.ContentType);

如果我这样做,它会提示下载。上面的代码适用于ie9Yes,它会提示下载,因为当您指定第三个参数时,Content Disposition头被设置为
附件
,这是正常的。如果要显示文件
inline
,应省略第三个参数。出于兴趣,我如何在新选项卡中打开它。这只能在客户端上完成,而不能在服务器上完成。例如,如果有指向此控制器操作的链接,只需将
target=“\u blank”
属性添加到此锚定。对于支持CSS3的浏览器,这也可以通过CSS3实现。看看说明书:这很好。然而,我遇到的问题是,在这种情况下,浏览器将下载一个没有扩展名的文件,因此仍然无法在浏览器中打开它。有什么想法吗?如果我这样做,它会提示下载。上面的代码适用于ie9Yes,它会提示下载,因为当您指定第三个参数时,Content Disposition头被设置为
附件
,这是正常的。如果要显示文件
inline
,应省略第三个参数。出于兴趣,我如何在新选项卡中打开它。这只能在客户端上完成,而不能在服务器上完成。例如,如果有指向此控制器操作的链接,只需将
target=“\u blank”
属性添加到此锚定。对于支持CSS3的浏览器,这也可以通过CSS3实现。看看说明书:这很好。然而,我遇到的问题是,在这种情况下,浏览器将下载一个没有扩展名的文件,因此仍然无法在浏览器中打开它。有什么想法吗?