1
我目前正在使用的webApp需要我将照片作为byte[]
存储在数据库中。然后它需要我将它们拉出并在视图中显示它们。我创建了一个photoContainer
,它包含位图而不是byte[]
并将其传递给视图。但我似乎无法弄清楚如何从那里显示它。我已经尝试将源设置为model.Image
,但这不起作用。无论如何,在视图中我的模型中显示一个位图?在剃刀模型中显示位图
在此先感谢。
我目前正在使用的webApp需要我将照片作为byte[]
存储在数据库中。然后它需要我将它们拉出并在视图中显示它们。我创建了一个photoContainer
,它包含位图而不是byte[]
并将其传递给视图。但我似乎无法弄清楚如何从那里显示它。我已经尝试将源设置为model.Image
,但这不起作用。无论如何,在视图中我的模型中显示一个位图?在剃刀模型中显示位图
在此先感谢。
在一个控制器发生这种
public FileResult GetImg(int id)
{
var image = db.Categories.First(m => m.CategoryID == id).Picture;
byte[] imageData;
if(image != null)
{
imageData = image.ToArray();
return File(imageData, image.contentType);
}
else
{
return null;
}
}
在您看来这个地方
<img src="@Url.Action("GetImg", "ControllerTheActionAboveIsPlacedIn", new { id = Model.ImageId})" />
这种解决方案需要一个新的数据库调用每个图像进行。视图级别的模型已经包含byte []。现在没有更高效的方式来渲染图像,而不需要返回每个图像的数据库? – ElHaix
您可以使用这种方法,但在IE7及以下版本中不起作用。 IE8也是有限的。 http://stackoverflow.com/questions/2644542/outputting-a-byte-arrain-into-the-src-attribute-of-an-img-tag/2644598#2644598 –