我是 MVC(来自面向对象的 C# exe 应用程序)和 Stackoverflow 的新手。我一直在努力尝试使用 MVC 有效地运行代码。我有从数据库返回的模型数据,以及该数据是一个字节字段,它是一个 jpeg 图像。在这个阶段,我已经对数据库进行了一次调用......
现在我坚持的是,一旦填充的模型数据在要渲染的视图中,我不能简单地循环它并在每个数据行中渲染图像。我发现使它工作的唯一方法是调用返回 FileContentResult 的 Action 方法,但这需要重新调用每个图像的数据库。
对于解决方案,我尝试了三种不同的方法来解决以下问题:
- 我似乎无法通过 Action 方法将字节数组传递回控制器,以满足 MVC 希望在视图中接收 FileContentResult 的方式。Action 方法只想接受简单类型。
- 我显然不想让控制器返回数据库以获取视图中已有的字节数据,尤其是当这将涉及模型数据中的每个条目的多次往返时。
- 使用 Data Uri 是可行的,但还没有足够多的浏览器支持它。
有人可以告诉我处理此类问题的最佳方法是什么吗?我是否需要处理问题 1 或 2,或者我是否缺少其他方法?
这是我最初在问题 1 中尝试使用的代码,用于将字节数组传回控制器,以便渲染 FileContentResult:
<img src=" @{Html.RenderAction("RenderMemberImage", "Home", new { @pic = x.ThumbnailData });}" />
[HttpGet]
public FileContentResult RenderMemberImage(byte[] pic)
{
return new FileContentResult(pic, "mime/jpeg");
}