如何在不设置 Content-Disposition 标签的情况下从控制器返回图像?

Posted

技术标签:

【中文标题】如何在不设置 Content-Disposition 标签的情况下从控制器返回图像?【英文标题】:How to return image from controller without setting Content-Disposition tag? 【发布时间】:2010-12-02 15:01:21 【问题描述】:

所以我使用 MVC 2 从控制器动作中提供一些图像。一般智慧(1、2、3)似乎是使用FileResult 类型之一(FileStreamResultFileContentResult 或 `FileContentResult')。

但是,所有三个具体的FileResult 都将Content-Disposition 响应标头设置为attachment; filenameYourFileNameHere=UTF-8。最终结果是,如果用户直接查看我的图像,而不是嵌入在 html 中,浏览器会显示一个保存对话框,而不是显示图像。我希望图像只显示在浏览器中。

我想这是我的问题:使用 MVC 2 在图像标记为下载的情况下,返回图像结果的适当方法是什么?

【问题讨论】:

【参考方案1】:

MVC 框架使用 FileResult.FileDownloadName 属性来确定是内联发送内容还是作为附件发送。如果您直接实例化 FileResult 派生类型,请不要设置其 FileDownloadName 属性。或者,如果您使用的是 Controller.File 工厂方法,请调用不带 fileDownloadName 参数的重载(或为该参数传入 null)。

【讨论】:

以上是关于如何在不设置 Content-Disposition 标签的情况下从控制器返回图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不影响 SYSTEM/IE 代理的情况下为 Webbrowser Control 设置代理

如何在不引发事件的情况下设置 checkbox.isChecked

如何在不更改用户设置的缩放比例的情况下更新地图标记?

如何在不注销并重新登录的情况下重新加载 .bashrc 设置?

如何在不使用用户设置的情况下在运行时读取/写入 app.config 设置?

如何在不调用 textViewDidChangeSelection 的情况下设置 NSAttributedString 属性?