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

本文关键字:显示 数据库 图像 视图 ASP NET MVC | 更新日期: 2023-09-27 18:31:44

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

我尝试像这样显示它们:

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

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

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

我希望它很清楚。

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

你可以尝试这样的事情:

  • 创建返回FileContentResult的控制器操作
  • 将数据从数据库拉取到流或字节数组中
  • 在操作中,使用 Controller.File 方法重载之一,传入图像内容和 MIME 类型,并从操作中返回该内容。
  • 将 img src 属性设置为控制器操作的 URL,传递标识要从数据库返回的图像所需的任何参数。
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" />
}