在ASP.NET MVC视图中显示数据库中的图像

时间:2013-09-17 00:38:44

标签: c# asp.net sql asp.net-mvc asp.net-mvc-4

我是Asp.NET MVC开发的新手,我想创建一个应用程序,在同一个View中显示来自数据库的多个图像。我将图像存储为LONGBLOB并转换为基本64字符串。

我试图像这样显示它们:

<img src=<%:Html.Value("photo")%> />

但是,我认为URL不支持太大的字符串作为参数。

我的问题是:哪种是从数据库显示图像的最佳方式?我需要将它们存储在图像服务器中吗?创建地图路线以保存每个URL中的图像?

我希望很清楚。

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

  • 创建一个返回FileContentResult
  • 的控制器操作
  • 将数据从数据库中拉入Stream或Byte数组
  • 从操作中,使用其中一个Controller.File Method Overloads,传入图片内容和mime类型,然后从操作中返回。
  • 将img src属性设置为控制器操作的URL,传递所需的参数以识别要从数据库返回的图像。

答案 1 :(得分:-1)

public ActionResult MYsample()
{
    var MyList = storeDB.GenreList();
    var a= MyList.Count;

    if (a != null)
    {
        foreach (var li in MyList)
        {
            return File(li.fileContent, li.mimeType,li.fileName);
        }
    }
    return View(MyList);
}

查看

@foreach (var item in Model)
{
        <img src="@Url.Action("MYsample", "HomeController", new { id = item.ProductID })" alt="@item.Productname" />
}