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

5
我是一个新手Asp.NET MVC开发者,我想制作一个应用程序,在同一个视图中显示来自数据库的多个图像。我将图像保存为LONGBLOB,并将其转换为Base64字符串。
我想要按照以下方式显示它们: <img src=<%:Html.Value("photo")%> /> 然而,我认为URL不支持太长的字符串作为参数。
我的问题是:从数据库中显示图像的最佳方法是什么?我需要将它们存储在图像服务器中吗?创建映射路径以将图像保存在每个URL中?
希望我表达清楚了。

与论坛网站不同,我们在 [so] 上不使用“谢谢”、“感激任何帮助”或签名。请参阅“应该从帖子中删除‘Hi’、‘thanks’、标语和问候语吗? - John Saunders
2个回答

1
你可以尝试以下方法:
  • 创建一个控制器操作,返回一个FileContentResult
  • 将数据从数据库中提取到流或字节数组中
  • 在操作中使用Controller.File Method Overloads之一,传入你的图像内容和MIME类型,并从操作中返回它。
  • 将img src属性设置为控制器操作的URL,传递所需的任何参数以标识要从数据库返回的图像。

-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" />
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接