2012-02-07 9 views
2

私は、バイト配列としてイメージを格納しているデータベースと、対応するEFクラスを持っています。今私は厳密にIEnumerableを取り込む型付けビューを持っています。ビューでは私が来ると、のようなものを、それらを表示することMYIMAGEのすべてをループにしたい:MVC 3 EFを使用した画像

foreach(var drawing in model) 
{ 
    <img [email protected] alt="drawing" /> 
} 

これは私が何をしたいの簡易版です。私はそのimgタグの代わりに何をする必要がありますか?

答えて

5

イメージを返すために別のコントローラを作成する必要があるとします。このコントローラは、そう

を画像ID(または任意のid)を取り、実施例に記載する方法の画像を返すここRender image to the screen from MVC controllerます、あなたのコードは次のようになります。

foreach(var drawing in model) 
{ 
    <img src="@Url.Action("GetImage", "Image", new {id=drawing.ImageId})" alt="drawing" /> 
} 

第2のアプローチは、画像を返すが、最初にすることではありませんそれらをディスクに保存し、そのパスをディスクに戻します。しかしおそらくそれはあなたが望むものではありません。

+0

美しい答えにURLを渡します。 – ivowiblo

0

イメージ/ pngコンテンツタイプとしてコンテンツとしてバイト配列を返すアクションメソッドを作成しようとします。

class ImageContent 
{ 
    public ActionMethod Image(int? id = 0) 
    { 
     // Get byte from table by image id 
     .... 


     return Content(byteArray.ToString(), "image/png"); 
    } 
} 

と、このアクションメソッド

@foreach(var drawing in Model) 
{ 
    <img src="@Url.Content("~/ImageContent/Image/" + drawing.DrawingID)" /> 
} 
関連する問題