J86*_*J86 39 asp.net-mvc image bytearray razor asp.net-mvc-3
我使用EF 4.1 Code First,为了简单起见,假设我有以下Entity类:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public Byte[] Image { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经设法创建一个工作的创建视图,允许将Person对象添加到数据库中.
但是,当我来显示一个人的细节时,我会卡在显示图像上.在谷歌搜索了几个小时后,我有以下内容:
// To convert the Byte Array to the author Image
public FileContentResult getImg(int id)
{
byte[] byteArray = DbContext.Persons.Find(id).Image;
return byteArray != null
? new FileContentResult(byteArray, "image/jpeg")
: null;
}
Run Code Online (Sandbox Code Playgroud)
在我试图列出人员详细信息的视图中,我有以下内容来显示图像:
<img src="@Html.Action("getImg", "Person", new { id = item.Id })" alt="Person Image" />
Run Code Online (Sandbox Code Playgroud)
但是上面的方法不起作用,我的图像源[src]属性返回空.
我非常感谢帮助我显示图像.
谢谢.
瓷碗.
Len*_*rri 59
如果您已经碰巧在模型中加载了图像,那么有一种更简单的方法:
<img src="data:image;base64,@System.Convert.ToBase64String(Model.Image)" />
Run Code Online (Sandbox Code Playgroud)
这样,您不需要再次访问服务器只是为了byte[]从数据库中获取图像.
Dar*_*rov 36
像这样:
<img src="@Url.Action("getImg", "Person", new { id = item.Id })" alt="Person Image" />
Run Code Online (Sandbox Code Playgroud)
你需要Url.Action而不是Html.Action因为你只想生成一个GetImg动作的URL .Html.Action做了完全不同的事情.
| 归档时间: |
|
| 查看次数: |
42862 次 |
| 最近记录: |