我想在我的视图中显示存储在我的数据库中的图像 我的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'
有人知道如何解决这个问题吗?
答案 0 :(得分:1)
在您的操作方法中,第一行获取图像集合(特别是IQueryable<byte[]>
:
var imageData = repository.GetAllImages();
然后您尝试将所有图像作为单个文件发送:
return File(imageData, "image/jpg");
imageData
是一组文件。您需要选择其中一个并返回。为此,您可能需要修改GetAllImages
函数或使用其他函数。 action方法正在传递id
,但你不能在该函数的结果上使用它,因为你所拥有的只是字节数组。您需要过滤指定的id
,然后使用生成的字节数组。