mysql データベースからロードされた画像をビューに表示することについて質問があります。
私のデータベーステーブル「deliverables」には、「item_id」、「deliverable_image」、および「afstudeerrichting_id」があります。「item_id」と「afstudeerrichting_id」は、他のテーブルからの FK です。
afstudeerrichting_id = ..のときに画像を表示したい
コントローラ:
public ActionResult Index()
{
var model = repository.GetIdsOfImages(1);
return View(model.ToList());
}
public ActionResult ShowImage(int afstudeerrichtingid)
{
IQueryable<byte[]> data = repository.GetImages(afstudeerrichtingid);
var thedata = data.First();
return File(thedata, "image/png");
}
リポジトリ(画像を取得する場所):
public IQueryable<long> GetIdsOfImages(int afstudeerrichtingid)
{
return from deliverable in entities.deliverables
where deliverable.afstudeerichting_id.Equals(afstudeerrichtingid)
select deliverable.item_id;
}
public IQueryable<byte[]> GetImages(int afstudeerrichtingid)
{
return from deliverable in entities.deliverables
where deliverable.afstudeerichting_id.Equals(afstudeerrichtingid)
select deliverable.deliverable_image;
}
意見:
@foreach(var imgID in Model.DeliverablesIDsList)
{
<img src="@Url.Action("ShowImage", "Deliverable", new { DeliverableID = imgID })" />
}
私のViewmodelで:
public List<long> DeliverablesIDsList { get; set; }
public int DeliverableID { get; set; }
今、私はエラーが発生します:
ディクショナリに渡されたモデル アイテムのタイプは 'System.Collections.Generic.List`1[System.Int64]' ですが、このディクショナリにはタイプ 'GDMfrontEnd.Models.DeliverableViewModel' のモデル アイテムが必要です。
ViewModel で何を変更すればよいですか? または、私は何を間違っていますか?