SQL Serverデータベースから画像(varbinary
)を取得して、linqクエリを使用して表示しようとしています。ここでアクションからビューに画像を送信していますが、asp.net mvcでエラーが発生しました
は私のアクションコントローラです:
public ActionResult show_pics()
{
DBEntities db = new DBEntities();
// get one image::
byte[] item = (from f in db.Images
where f.Name.Contains("5.jpg")
select f.ImageContent).First();
// get an image bytes
var a = byteArrayToImage(item); //image.dal
return View(a);
}
ここに私の見解です:
@model IEnumerable<Cygenus_website.Models.images>
@{
ViewBag.Title = "show_pics";
}
<h2>View_photos</h2>
<table>
<tr>
@foreach(var item in Model)
{
<td>
@{
// converting to string
var base64 = Convert.ToBase64String(item.ImageBytes);
var imgsrc = string.Format("data:image/jpg;base64,{0}", base64);
}
<img src="@imgsrc" style="max-width:100px;max-height:100px" />
</td>
}
私は例外を取得:
辞書に渡されるモデルアイテムはタイプ「システムであります.Drawing.Bitmap 'が必要ですが、この辞書には' System.Collections.Generic.IEnumerable`1というモデル項目が必要です[Cygenus_website.Models.images ] '。
私はそれがIEnumerable
を受け入れています一方、表示する画像を渡していますが、私はIEnumerable
または他のソリューションに画像を変換する方法として何をすべきかわからないことを知っていますか?
ありがとうございました。
Psと私は
ASP.NET MVCに新しいです、私たちは 'byteArrayToImage()' – dstepan
公共System.Drawing.Image byteArrayToImage(バイト[] byteArrayIn) { MemoryStreamをミリ秒=のコードを見ることができます新しいMemoryStream(byteArrayIn); System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms); return returnImage; } –