Asp.net MVC FileContentResult - 阻止在浏览器中打开

时间:2011-10-05 13:51:57

标签: jquery asp.net-mvc ajax filecontentresult

我的一个控制器操作会向用户返回一个文件。无论文件类型如何,我都希望向用户显示下载(打开/保存)对话框。当文件类型为.doc,.docx,.xlsx等时,这种方法很好。但是当文件是.txt,.xps,.pdf(有时)或.html时,它会在浏览器中打开。

有没有办法阻止文件在浏览器中打开,只允许用户在单独的窗口中打开它而不导航离开当前页面?

该文件的请求是使用jQuery的$.ajax({})

相关:让浏览器处理请求并给出弹出窗口而不是AJAX调用接收文件的conent作为响应字符串由this ansewr解释,但是这个问题解决了强制浏览器处理收到后以某种方式提交。

1 个答案:

答案 0 :(得分:5)

我认为您不能使用客户端命令或设置来执行此操作。您需要在服务器上执行某些操作,以便为每个文件返回application/octet-stream的内容类型。否则,浏览器将查看传入文件,并根据自己的规则和功能决定如何处理它。

如果您可以在服务器上执行此操作,请尝试将"Content-Disposition"标题设置为"attachment; filename=whatever.xyz"