2009-09-11 11 views
6

私はasp.net mvcを初めて使いましたが、GDI +で面白いアプリをやろうとしていて、asp.net mvcで画像を表示する必要があります。ASP.Net MVCビューのモデルのイメージプロパティを表示する方法は?

私はimageプロパティを持つモデルを持っている:

namespace DomainModel.Entities 
{ 
    public class BackgroundImage 
    { 
     // Properties 
     public Image Image {get; private set; } 

     public BackgroundImage() 
     { 
      Image = Image.FromFile(@"D:\ProjectZero\DomainModel\image\bkg.PNG"); 

     } 
    } 
} 

コントローラは、次のビューに送信

<p> Height: </p><%= Model.Image.Height //it prints the height of the image %> </br> 
<p> Width: </p><%= Model.Image.Width //it prints the width %> </br> 
<p> Image: </p><%= Model.Image //does not work to display the image %> 

public ActionResult Index() 
     { 

      BackgroundImage bkImg = new BackgroundImage(); 
      return View(bkImg); 
     } 

ビューは次のようになりますどのようにイメージプロパティを表示するのですか?

divの背景イメージが必要です。私はイメージのサイズを変更する必要はありません、私はそれを通常のサイズで表示する必要があります。

私が見逃すHTMLヘルパーはありますか?

ありがとうございました!

答えて

15

あなたは、応答ストリームに画像を書いて、「画像/ PNG」と言うために適切なコンテンツタイプを設定しますコントローラのアクションを記述する必要があります。 [ 公共バイト:これは私の問題を解決したが、私はこれを使用するために必要な

<img src="<%= Url.Action("Image") %>" alt="" /> 
+1

public ActionResult Image() { byte[] image = GenerateImage(); return File(image, "image/png"); } 

そして、あなたのビュー内部:次に、あなたのビューでこのアクションを参照するimgタグを使用することができます] imageToByteArray(System.Drawing.Image imageIn) { MemoryStream ms = new MemoryStream(); imageIn.Save(ms、System.Drawing.Imaging.ImageFormat.Gif); return ms.ToArray(); } 私のイメージをバイト配列に変換します。 – andreiursan

+1

私は2日間これをやろうとしていて、ImageResultsというActionResultsから派生したHttpHelpersの道を導かれています。 –

+0

上記のビューコードの例では、アットマークがありません。 kroiz

関連する問題