asp.net-mvc-3 – 在Razor/MVC3中显示数据库映像(bytes [])?
我从我的MS SQL 2008R2数据库返回一个数据集,其中包含一个数据表,我已经从我的Razor视图获取数据。我添加了一个字节[]字段,其中包含我在该视图上显示的图像缩略图。
由于字节数组相对较小,我想我会尝试显示字节数组的内联。不过阅读后可能会有一些与浏览器有关的问题,我放弃了这一点。 创建一个控制器方法似乎是要走的路,(这两个方法都找到了here),但是我已经有字节数组准备好在我的视图,而不需要再进行另一个数据库调用来获取它的ID。 做这个,不明显的原因: …在页面上显示其他数据…. @if (Model.dsResults.Tables[0].Rows[i]["ImageBytes"] == null) { <img src="@Url.Content("~/Content/Images/NoPhoto.png")" border="0" /> } else { <img src="@Url.Action("GetImage","SearchResults",new { imageBytes = Model.dsResults.Tables[0].Rows[i]["ImageBytes"] })" alt="Product Image" /> } … … 控制器方式: [Authorize] [AcceptVerbs(HttpVerbs.Get)] public ActionResult GetImage(byte[] imageBytes) { byte[] byteArray = imageBytes; return new FileContentResult(byteArray,"image/jpeg"); } …因为这本质上是尝试通过http发送字节数组。 所以,我的问题是,由于我已经在我的Razor视图中有字节数组,我该如何显示? – 更新 – 我意识到,不建议在视图中进行处理,但是由于数据已经存在,所以不能这样做: Response.Write((byte[])Model.dsResults.Tables[0].Rows[i]["ImageBytes"]); 要么… Stream s = new MemoryStream(((byte[])Model.dsResults.Tables[0].Rows[i]["ImageBytes"])); System.Drawing.Image img = new System.Drawing.Bitmap(s); 在其他帖子中,我已经看到你做了一个Response.Write(byte [] …)),但是在这种情况下这不行。 – UPADATE – 在我不断寻求效率(不需要再提出数据库)的情况下,WebImage帮手似乎是一个很好的候选人。其中一个构造函数将接受一个字节数组来初始化该类,然后使用.Write(“jpeg”)方法,我可以看到该图像。 <td> @{ WebImage webImage = new WebImage(((byte[])Model.dsResults.Tables[0].Rows[i]["ImageBytes"])); webImage.Write("jpeg"); } </td> 使用WebImage.Write()的问题是,一旦使用,该图像是在页面上呈现的唯一的东西。有没有办法将其直接渲染到剃须刀视图页面上的“控件”? – 更新 – 这继续bug我…所以我尝试了以下,我认为可能会工作,因为这是我们正在做的行动… if (Model.dsResults.Tables[0].Rows[i]["ImageBytes"] != DBNull.Value) { var img1 = new FileContentResult(((byte[])Model.dsResults.Tables[0].Rows[i]["ImageBytes"]),"image/jpeg"); <text> <img src="@new FileContentResult(((byte[])Model.dsResults.Tables[0].Rows[i]["ImageBytes"]),"image/jpeg")" /> </text> } …不行 解决方法
Model.Content是一个byte []图像。
@{ string imageBase64 = Convert.ToBase64String(Model.Content); string imageSrc = string.Format("data:image/gif;base64,{0}",imageBase64); } 这样使用 <img src="@imageSrc" alt="@Model.Name" width="100" height="100" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在ASP.NET MVC中将复杂的ViewModel传递
- Asp.Net:在iis中调试网站
- asp.net – 什么是使用jQuery的一些利弊?
- asp.net – 多租户架构的实体框架 – 按租户ID过滤单个表
- 用asp.net core 2.0 + EFCore.Sqlite做个小网站
- asp.net – 如何将一个对象序列化为查询字符串格式?
- 无法从asp.net代码后面调用jquery函数
- asp.net-mvc-4 – 发布后保留表单值(不是模型的一部分)
- asp.net – 回滚请求身体流
- asp.net-mvc-3 – MVC:路由获取/发布到不同的控制器 怎么样
- asp.net-mvc – 存储网站图像的最佳方式
- asp.net – 为MVC3应用程序中的某些操作启用并要
- asp.net-web-api – 随着SerilogWeb.Owin停产,是
- 采用Opserver来监控你的ASP.NET项目系列(二、监控
- asp.net – 未定义JSONP回调方法
- asp.net-mvc – 更改ASP.NET MVC筛选器中的视图
- asp.net – 检查ValidationGroup是否从代码隐藏有
- .net – 将大型资源文件物理拆分为多个文件,而编
- asp.net – 在设计器视图中打开项目时,Visual St
- asp.net – 在jQuery $.post上缓存MVC 4 Partial