gpt4 book ai didi

c# - ASP.NET - 从数据库中检索图像列表并将它们显示在 View 中?

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:02 24 4
gpt4 key购买 nike

我想从数据库中检索图像列表并将它们显示在 View 中。所有图像都以“图像”数据类型格式存储在数据库中。下面是我的 Controller 、 View 模型和 View 。我不确定它是否正确,所以请帮助。我刚刚使用了 Linq2SQL,因为它只是一个示例项目。请更正我的代码,并帮助我如何在 View 中显示图像列表。我只是一个初学者,所以如果您能让解决方案简单明了,那就太好了。

View 模型:

public class ImageViewModel
{
public byte[] Image { get; set; }
public int imageId { get; set; }
public IEnumerable<int> imageList { get; set; }
}

Controller : *(更新和解决)*

   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)" />
}

最佳答案

做一个新的 Action ,为你的图像获取一个唯一的标识符,使用这个 ID 从你的数据库中获取一个 byte[] 然后像这样直接将它写入响应流

Response.ContentType = "content type of your image";
//filecontents is the byte[]
Response.BinaryWrite(filecontents);

然后每当您需要显示数据库中的图像时,您可以像这样设置源

<img src="/Controller/Action/ImageId"/>

关于c# - ASP.NET - 从数据库中检索图像列表并将它们显示在 View 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16082471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com