【问题标题】:Displaying images from database in an ASP.NET MVC View在 ASP.NET MVC 视图中显示数据库中的图像
【发布时间】:2013-09-21 06:47:32
【问题描述】:
我是 Asp.NET MVC 开发的新手,我想制作一个应用程序,在同一个视图中显示来自数据库的多个图像。我将图像存储为 LONGBLOB,然后转换为 base 64 字符串。
我正在尝试像这样显示它们:
<img src=<%:Html.Value("photo")%> />
但是,我认为 URL 不支持太大的字符串作为参数。
我的问题是:从数据库中显示图像的最佳方式是什么?我需要将它们存储在图像服务器中吗?创建地图路由以保存每个 URL 中的图像?
我希望它很清楚。
【问题讨论】:
标签:
c#
asp.net
sql
asp.net-mvc
asp.net-mvc-4
【解决方案1】:
你可以试试这样的:
- 创建一个返回
FileContentResult的控制器操作
- 将数据库中的数据拉入 Stream 或 Byte 数组中
- 在动作中,使用Controller.File Method Overloads 之一,传入您的图像内容和mime 类型,然后从动作中返回。
- 将您的 img src 属性设置为控制器操作的 URL,传递识别您想要从数据库返回的图像所需的任何参数。
【解决方案2】:
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" />
}