データベースから画像のリストを取得し、ビューに表示したいと思います。すべての画像は、データベースに「画像」データ型形式で保存されます。以下は、私のコントローラー、ビューモデル、およびビューです。正しいかどうかわかりませんので、よろしくお願いします。これは単なるサンプル プロジェクトであるため、Linq2SQL を使用しました。私のコードを修正し、ビューに画像のリストを表示する方法を教えてください。初心者なので分かりやすく教えていただけると助かります。
ビューモデル:
public class ImageViewModel
{
public byte[] Image { get; set; }
public int imageId { get; set; }
public IEnumerable<int> imageList { get; set; }
}
コントローラー: * (更新および解決済み) *
public ActionResult Index()
{
var imagesList = (from q in ctx.Images
select new Models.ImageViewModel
{
imageId = q.id
}).ToList();
IEnumerable<int> imageIds = imagesList.Select(x=>x.imageId);
Models.Test obj = new Models.Test();
obj.imageList = imageIds;
return View(obj);
}
public ActionResult View(int imageId)
{
byte[] imageArray = (from q in ctx.Images
where q.id == imageId
select q.data.ToArray()).FirstOrDefault();
return File (imageArray,"image/jpg");
}
意見:
@model MvcApplication3.Models.ImageViewModel
@foreach (var id in Model.imageList)
{
<img src="@Url.Action("View", "Home", new { imageId = id},null)" />
}