在剃刀中显示数据库中的列表图像

时间:2014-03-25 10:04:43

标签: c# image asp.net-mvc-4 razor

我正在使用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();
}

您能否帮助我显示数据库中包含的所有图像。

2 个答案:

答案 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属性中的路径