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

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

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

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

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

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

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