我正在使用ASP.NET应用程序而我正在使用Razor,我希望在我的视图中显示多个图像。我已经将这些图像存储在数据库中。 我的代码只能显示一个图像。
我在db中有一个表,它有以下内容: - Id,image,...我想只显示图像,我试图在索引中显示图像,我在下面有查看:
<img src="@Url.Action("GetImage", "Image", new {id=3})" />
在ImageController中我有:
public ActionResult GetImage(int id)
{
using (var db = new Bd_scanitEntities())
{
var firstOrDefault = db.ImgOrgSet.Where(
c => c.Id == id).FirstOrDefault();
if (firstOrDefault != null)
if (firstOrDefault != null)
{
byte[] image = firstOrDefault.image;
return File(image, "image/jpg");
}
else
{
return null;
}
}
return View();
}
您能否帮助我显示数据库中包含的所有图像。
答案 0 :(得分:0)
在您的视图中执行for
循环并使用id= index
调用Action方法。如果您向我展示您的视图代码,我可以用您的代码显示我的解释
如果数据库中表中的id没有递增,最好使用foreach
循环。我们假设您删除了一张图片,然后在表格中添加了另一张图片。我认为索引不对应Count
属性。
答案 1 :(得分:0)
第一种方法
从数据库中获取ImagesList,就像你从动作中获取一个动作并动态填充它们一样,这里有一大堆代码,它会给你一些想法,如何实现:
@foreach(var ID in Ids)
{
<img src="@Url.Action("GetImage", "Image", new {id=ID})" />
}
第二种方法
另一种方法是将数据存储在数据库中,而不是将其存储在路径中并在运行时呈现它们,使用相同的方式只传递src
属性中的路径