5

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

我正在尝试像这样显示它们:

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

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

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

我希望这很清楚。

4

2 回答 2

1

你可以尝试这样的事情:

  • 创建一个返回一个控制器动作FileContentResult
  • 将数据库中的数据拉入 Stream 或 Byte 数组
  • 从动作中,使用Controller.File Method Overloads之一,传入您的图像内容和 mime 类型,然后从动作中返回。
  • 将您的 img src 属性设置为控制器操作的 URL,传递识别您要从数据库返回的图像所需的任何参数。
于 2013-09-17T01:19:33.613 回答
-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" />
}
于 2013-09-17T08:58:43.460 回答