2009-09-11 13 views
6

Asp.net mvc'e yeni geldim, ancak GDI + ile komik bir uygulama yapmaya çalışıyorum ve asp.net mvc ile bazı görüntülerin görüntülenmesini istiyorum.ASP.Net MVC Görünümde bir modelin görüntü özelliği nasıl görüntülenir?

ben bir görüntü özelliğine sahip bir modeli vardır:

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

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

     } 
    } 
} 

denetleyici aşağıdaki görünümüne gönderir

:

<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); 
     } 

görünümü şöyle Bu resim özelliğini nasıl görüntülerim?

Bir div için arka plan görüntüsüne ihtiyacım var. Resmi yeniden boyutlandırmam gerekmiyor, sadece normal boyutta görüntülemem gerekiyor.

Özlediğim bir Html Yardımcısı var mı?

Zaman ayırdığınız için teşekkür ederiz!

cevap

15

Sen tepki akışına görüntüyü yazmak ve "image/png" demek doğru içerik türünü ayarlayacaktır bir kontrolör eylemi yazmak gerekir.

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

Ve iç görünüm: Sonra görünümünde bu eylemi başvurmak için img etiketi kullanabilirsiniz Bu, sorunumu çözdü

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

ama bunu kullanmak için gerekli: kamu bayt [ ] imageToByteArray (System.Drawing.Image imageIn) { MemoryStream ms = yeni MemoryStream(); imageIn.Save (ms, System.Drawing.Imaging.ImageFormat.Gif); dönüş ms.ToArray(); Resmimi bir bayt dizisine dönüştürmek için } . – andreiursan

+1

2 gün boyunca bunu yapmaya çalışıyorum ve HttpHelpers, ImageResults denilen ActionResults türetilmiş yol aşağı yol aldım ve bana hiçbir yerde, bu çözüm ilk kez çalıştı, Mükemmel !! –

+0

At işareti, yukarıdaki görünüm kodu örneğinde yok. kroiz

İlgili konular