如何在MVC4中将字节[]显示为图片

4 asp.net-mvc image

我有一个包含Byte []类型属性的模型.我想在html标签的MVC View中显示这个属性.我可以用什么方法来显示这个图像?

小智 9

这是我在我的项目中需要做的事情:对于我的对象集合的每个实例,我将下面的标记放在Razor View中

<img src="@Url.Action("GetPhoto", new { photoId = Model.PhotoId })" />
Run Code Online (Sandbox Code Playgroud)

然后在Controller中我添加了一个Action:

public ActionResult GetPhoto(int photoId)
{
    byte[] photo = GetPhotoFromDb(photoId);
    return File(photo, "image/jpeg"); }
Run Code Online (Sandbox Code Playgroud)


Pau*_*ing 7

在控制器上创建一个操作以返回文件响应:

public class MyController : Controller
{
    public ActionResult ViewFile()
    {
        byte[] bytes;
        string mime;

        return File(bytes, mime);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以像这样显示图像:

<img src="/mycontroller/viewfile" />
Run Code Online (Sandbox Code Playgroud)

编辑:一个详细的例子:

public class Photo
{
    public int ID {get;set;}
    public string Title {get;set;}
}

public class PhotoController : Controller
{
    public ActionResult Index()
    {
        return View(new List<Photo> { new Photo { ID = 1, Title = "first" }, new Photo { ID = 2, Title = "second" }});
    }
    public ActionResult Photo(int ID)
    {
        return File(GetPhotoBytes(ID), "image/jpg");
    }
}
Run Code Online (Sandbox Code Playgroud)

视图:

@model IEnumerable<Photo>
@foreach (var photo in Model)
{   
    <img src="@Url.Action("photo", "photo", new { ID = photo.ID })" title="@photo.Title" /> 
}
Run Code Online (Sandbox Code Playgroud)