arrays - 将字节数组转换为图像并在 Razor View 中显示

标签 arrays asp.net-mvc image asp.net-mvc-3 razor

我正在使用 EF 4.1 Code First,为了简单起见,假设我有以下实体类:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Byte[] Image { get; set; }
}

我已经成功创建了一个工作创建 View ,允许将 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;
}

在我尝试列出人员详细信息的 View 中,我有以下内容来显示图像:

<img src="@Html.Action("getImg", "Person", new { id = item.Id })" alt="Person Image" />

但是上述方法不起作用,我的图像源[src]属性返回空

最佳答案

如果您已经在模型中加载了图像,还有一种更简单的方法:

<img src="data:image;base64,@System.Convert.ToBase64String(Model.Image)" />

通过这种方式,您不需要再次访问服务器来从数据库中获取图像 byte[]

关于arrays - 将字节数组转换为图像并在 Razor View 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560830/

相关文章:

javascript - Vue.js 删除数组中的项目

ASP.net MVC,从不同的 Controller 调用 View

Jquery 图片库图像在悬停时缩放

java - 通过邮件发送图像

css - 使图像高于包装 div 并从最底部开始

javascript - 使用对象键值对的数组值将数组转换为对象

JavaScript 多维数组或任何存储大量数据以进行计算的替代方案

asp.net-mvc - ASP.NET MVC 4 Web API 无法映射包含字符串 "con"的路径?

c# - 如何在 ActionLink 的字符串部分添加换行符?

Php json_encode 数组输出\错误