【发布时间】:2013-04-18 12:04:46
【问题描述】:
我想从数据库中检索图像列表并将它们显示在视图上。所有图像都以“图像”数据类型格式存储在数据库中。下面是我的控制器、视图模型和视图。我不确定它是否正确,所以请帮忙。我刚刚使用了 Linq2SQL,因为它只是一个示例项目。请更正我的代码,并帮助我如何在视图上显示图像列表。我只是一个初学者,所以如果你能保持解决方案简单明了,那就太好了。
视图模型:
public class ImageViewModel
{
public byte[] Image { get; set; }
public int imageId { get; set; }
public IEnumerable<int> imageList { get; set; }
}
控制器: *(已更新并已解决)*
public ActionResult Index()
{
var imagesList = (from q in ctx.Images
select new Models.ImageViewModel
{
imageId = q.id
}).ToList();
IEnumerable<int> imageIds = imagesList.Select(x=>x.imageId);
Models.Test obj = new Models.Test();
obj.imageList = imageIds;
return View(obj);
}
public ActionResult View(int imageId)
{
byte[] imageArray = (from q in ctx.Images
where q.id == imageId
select q.data.ToArray()).FirstOrDefault();
return File (imageArray,"image/jpg");
}
查看:
@model MvcApplication3.Models.ImageViewModel
@foreach (var id in Model.imageList)
{
<img src="@Url.Action("View", "Home", new { imageId = id},null)" />
}
【问题讨论】:
-
您遇到了什么问题?
-
我根本看不到任何图像。只是一个带有“X”标记的小方框列表。
-
我也认为我的逻辑可能是错误的。请随时为我提供执行此操作的替代解决方案。谢谢
-
您的视图模型中没有名为
bitimage的属性,但您在视图中引用了它。您是否有下载图像本身的处理程序或操作?请记住,img的src属性需要图像的 URL,而不是图像本身。 -
遵循 Britton 的以下建议 - 您需要构建一个动作来下载每个图像。
标签: c# .net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4