我有一个数据库,它将图像存储为字节数组,并在EF中存储相应的类。现在我有一个强类型的视图接受IEnumerable。在视图中,我想循环遍历所有进入并显示它们的MyImage,如:
foreach(var drawing in model)
{
<img src=@drawing.Image alt="drawing" />
}
这是我想要的简化版本。我需要做什么而不是那个img标签???
答案 0 :(得分:5)
我想你需要为返回图像创建单独的控制器。此控制器将获取图像ID(或任何ID)并返回图像,例如此处Render image to the screen from MVC controller
所描述的内容所以,你的代码看起来像是:
foreach(var drawing in model)
{
<img src="@Url.Action("GetImage", "Image", new {id=drawing.ImageId})" alt="drawing" />
}
第二种方法不是返回图像,而是首先将它们保存到光盘上并返回到它的路径。但可能不是你想要的。
答案 1 :(得分:0)
尝试创建一些将字节数组作为Content返回为image / png Content-type的Action方法。
class ImageContent
{
public ActionMethod Image(int? id = 0)
{
// Get byte from table by image id
....
return Content(byteArray.ToString(), "image/png");
}
}
并将URL传递给此操作方法
@foreach(var drawing in Model)
{
<img src="@Url.Content("~/ImageContent/Image/" + drawing.DrawingID)" />
}