0

我想在我的视图中显示存储在我的数据库中的图像。
我的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”转换为“字符串”

有谁知道我该如何解决这个问题?

4

1 回答 1

1

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

var imageData = repository.GetAllImages();

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

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

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

于 2013-06-03T19:01:23.443 回答