显示存储在mysql数据库+ ASP.NET MVC中的图像

时间:2013-06-03 18:55:45

标签: asp.net mysql asp.net-mvc image

我想在我的视图中显示存储在我的数据库中的图像 我的mysql数据库中有一个类型为“longblob”的字段“deliverable_image”。

在我的控制器中:

public ActionResult Show( int id )
    {
        var imageData = repository.GetAllImages();

        return File( imageData, "image/jpg" );
    }

存储库:

public IQueryable<byte[]> GetAllImages()
    {
        return from deliverable in entities.deliverables
               orderby deliverable.deliverable_image
               select deliverable.deliverable_image;
    }

查看:

<img src='<%= Url.Action( "Show", "Deliverable", new { id = ViewData["DeliverableID"] } ) %>' />

但在我的控制器中我收到错误:

  

无法从'System.Linq.IQueryable'转换为'string'

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在您的操作方法中,第一行获取图像集合(特别是IQueryable<byte[]>

var imageData = repository.GetAllImages();

然后您尝试将所有图像作为单个文件发送:

return File(imageData, "image/jpg");

imageData是一组文件。您需要选择其中一个并返回。为此,您可能需要修改GetAllImages函数或使用其他函数。 action方法正在传递id,但你不能在该函数的结果上使用它,因为你所拥有的只是字节数组。您需要过滤指定的id,然后使用生成的字节数组。