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 – HTML.Encode但保留换行符
- asp.net-mvc – ASP.NET MVC HTML帮助程序可以渲染没有ID属
- asp.net – 普通Web API或Web API和OData?
- “必须知道”.NET Architect / Lead的IIS功能
- asp.net – 如何填写一个Label.Text – 通过jQuery的属性
- ASP.NET MVP vs ASP.NET MVC
- asp.net-mvc-3 – 剃刀语法动态命名HTML元素
- asp.net – CSS压缩和组合/ js缩小 – 在运行时或构建时更好
- asp.net – 解析接受标题
- 如何让ASP.NET AJAX通过GZip压缩发送JSON响应?
- asp.net-mvc – Chrome 27中SignalR和跨域请求的
- asp.net – 在asp:超链接中分配声明值的问题 错
- asp.net-mvc-3 – WebAPI PUT / POST中的部分实体
- asp.net-mvc – asp.net mvc 3 webgrid排序依然?
- ASP.NET MVC3:部分视图和主视图之间的交互
- asp.net – 使用GhostScript将PDF转换为服务器上
- asp.net-mvc – MVC – 重定向在构造函数内
- asp.net-web-api – 在Webapi中使用Url.Link与属
- asp.net – NHibernate线程安全与会话
- 如何自定义Asp.net Identity 2用户名已经采取验证
