ASP.NET MVC下如何返回图片
方式一:
首先,我们应当从控制器入手,控制器一般不都是return View的吗?那怎么返回图片? 当然,Controller类也没有return Image 的,上次我们的例子是返回JSON,其实我们可以让其返回一个文件流,一开始我也想过使用ViewData,但这个在视图页面上只能通过服务器端代码来操作,如果希望用JS,就不那么好办了。
Controller类有一个File方法,当然,它有N个重载,而且返回的对象不一样,这里我们要找到返回FileContentResult类型的File方法,因为,我测试过,在<img>元素中,src属性不能读取到FileStreamResult对象的内容,是空白的,所以,不能返回FileStreamResult来获取。
请参考下面代码,不复杂,我先画一个矩形,然后在矩形上画一些文字,然后返回。
public ActionResult GetImg()
{
Bitmap bmp = new Bitmap(, );
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
g.FillRectangle(Brushes.Red, , , , );
g.DrawString("学习MVC", new Font("黑体", 15f), Brushes.Yellow, new PointF(5f, 5f));
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
g.Dispose();
bmp.Dispose();
return File(ms.ToArray(), "image/jpeg");
}
注意,这个方法定义在你的控制器中,属于一个Action。
在前台页面,我们这样处理。
- <div>
- <img src="/Home/GetImg" width="100" alt="" />
- </div>
这样,我们就可以在需要的时候通过JS来操作了,比如,返回随机图片,或者验证码什么的。

方式二
public ActionResult GetQianming()
{
//string strPath = //Server.MapPath("~/Resource/Image/5.jpg");
string strPath = @"\\服务器IP\Signature\0a5ab89b-9963-430d-8dff-393f61e1fad3.png";
Image img = Image.FromFile(strPath);
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return File(ms.ToArray(), "image/png");
}
前台调用
$("#ImageId").attr("src", "/Admin/Help/GetQianming"); //图片标签Id
ASP.NET MVC下如何返回图片的更多相关文章
- ASP.NET误人子弟教程:在MVC下如何返回图片
这几天忙着一些小事,也没有写什么了,今天,我们来玩一个比较简单的东东.就是在MVC下如何返回图片,相信,在传统WebForm下,大家都晓得怎么弄,方也不限于一种,但是,在架构较为严格的MVC里面,刚开 ...
- 在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片
在"MVC文件图片ajax上传轻量级解决方案,使用客户端JSAjaxFileUploader插件01-单文件上传"一文中,使用JSAjaxFileUploader这款插件实现了单文 ...
- 在ASP.NET MVC下有关上传图片脏数据的解决方案
在"在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片"中,已经实现了在客户端和服务端限制图片大小和格式,以及在服务端裁剪图片.但还 ...
- ASP.NET MVC下的四种验证编程方式[续篇]
在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式("手工验证"."标注Validation ...
- ASP.NET MVC下的四种验证编程方式
ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效性,我们将针对参数的验证成为Model绑定 ...
- Response.End()在Webform和ASP.NET MVC下的表现差异
前几天在博问中看到一个问题--Response.End()后,是否停止执行?MVC与WebForm不一致.看到LZ的描述后,虽然奇怪于为何用Response.End()而不用return方式去控制流程 ...
- ASP.NET MVC下的四种验证编程方式[续篇]【转】
在<ASP.NET MVC下的四种验证编程方式> 一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式(“手工验证”.“标注ValidationAttribute特性”.“ ...
- ASP.NET MVC下的四种验证编程方式【转】
ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效 性,我们将针对参数的验证成为Model绑 ...
- Asp.net MVC 中Controller返回值类型ActionResult
[Asp.net MVC中Controller返回值类型] 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必 ...
随机推荐
- Set,List,Map,Collection
// JAVA集合主要分为三种类型: // // Set(集) List(列表) Map(映射) Collection 接口 // // Collection是最基本的集合接口,声明了适用于JAVA集 ...
- JQuery中两个ul标签的li互相移动
实例 <html > <head> <meta http-equiv="Content-Type" content="text/html; ...
- IT黑马-面向对象
先说面向过程 面向过程主要考虑的是怎么做 把完成摸个需求的 所有步骤 从头到尾 逐步实现 根据开发需求,将某些功能独立的代码封装成一个又一个的函数 最后完成的代码就是顺序的调用不同的函数. 特点是: ...
- 服务器部署docker lnmp环境
一.安装dockerDocker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上 1.uname -an 查看当前系统版本 2.yum -y install docker 下载 ...
- PEP 8016-Python之父重回决策层
PEP 8016-Python之父重回决策层 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 去年,技术社区里还发生了一件大事:Linux 之父 Linus Torvalds 宣 ...
- Linux基础命令-查看基本硬件信息
Linux基础命令-查看基本硬件信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看CPU信息 [root@node101.yinzhengjie.org.cn ~]# l ...
- NodeJS 多版本管理(NVM)
前言 现在前端各种框架更新较快,对 Node 的依赖也不一样,Node 的过版本管理也很有必要. NVM(Node Version Manager),是一个 Node 的版本管理工具. 官方的 NVM ...
- 当调用对象中不存的方法、属性时,__getattr__的应用场景
一.Python中创建类和实例的调用顺序 new(cls) 创建对象前调用,如果类中没定义,会一直向父类找,直到object的 new 方法创建类.cls代表类本身 init(self) 创建类实例后 ...
- MapReduce如何解决数据倾斜?
数据倾斜是日常大数据查询中隐形的一个BUG,遇不到它时你觉得数据倾斜也就是书本博客上的一个无病呻吟的偶然案例,但当你遇到它是你就会懊悔当初怎么不多了解一下这个赫赫有名的事故. https://www. ...
- tensorflow API _ 4 (优化器配置)
"""Configures the optimizer used for training. Args: learning_rate: A scalar or `Tens ...