如何从控制器方法返回多个图像?

Leo*_*ens 4 c# asp.net-mvc image-processing

我有一个 ASP.NET MVC 控制器,可以生成图像(它们存储在内存中,我不想将它们存储在硬盘驱动器上),并且应该将它们返回到我的视图中。

问题是:我不知道如何从一个控制器方法返回多个图像(我想在 1 个视图中显示图像)。我知道我可以使用例如返回单个图像FileResult,但我无法找到(不在google/stackoverflow上)如何从同一方法返回多个图像。将方法拆分为多个方法是不可能的。哦,所有图像都转换为byte[],但如果需要的话可以反转。

lah*_*rah 5

这应该有效。注意我正在从磁盘读取图像作为示例,但它们可以来自内存或任何地方。然后在客户端使用java脚本来显示它们。

[HttpGet]
public JsonResult Images()
{
    var image1Base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(Server.MapPath("~/Images/1.jpg")));
    var image2Base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(Server.MapPath("~/Images/2.jpg")));

    var jsonResult = Json(new { image1 = image1Base64, image2 = image2Base64 }, JsonRequestBehavior.AllowGet);
    jsonResult.MaxJsonLength = int.MaxValue;

    return jsonResult;
}
Run Code Online (Sandbox Code Playgroud)