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

yoo*_*er8 5 ajax asp.net-mvc jquery filecontentresult

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

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

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

相关阅读:具有浏览器处理该请求,并给予弹出,而不是AJAX调用接收文件的conent作为响应字符串被解释这个ansewr,但这个问题地址迫使浏览器处理文件以某种方式一次收到了.

Ray*_*Ray 5

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

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

  • 仅供参考:如果您在FileContentResult上传递*FileDownloadName*属性的非空值,则MVC框架将自动在响应中设置Content-Disposition标头. (4认同)