2009-09-11 16 views
6

Jestem nowy w asp.net mvc, ale staram się zrobić zabawną aplikację z GDI + i potrzebuję zrobić jakiś widok obrazu z asp.net mvc.ASP.Net MVC Jak wyświetlić właściwość obrazu modelu w widoku?

Mam model, który ma właściwość obrazu:

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

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

     } 
    } 
} 

Sterownik wysyła do widoku następujące:

public ActionResult Index() 
     { 

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

widoku wygląda następująco:

<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 %> 

Jak wyświetlić tę właściwość obrazu?

Potrzebuję tego obrazu tła dla elementu div. Nie muszę zmieniać rozmiaru obrazu, wystarczy go wyświetlić w jego normalnym rozmiarze.

Czy brakuje mi helpera HTML?

Dziękuję za poświęcony czas!

Odpowiedz

15

Musisz napisać działanie kontrolera, który będzie zapisywać obraz do strumienia odpowiedzi i ustawić odpowiedni typ zawartości, aby powiedzieć „image/png”. Następnie można użyć tagu img odwoływać się do tych działań w widoku:

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

A wewnątrz widzenia:

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

to rozwiązać mój problem, ale musiałem użyć tego: bajtowy publicznych [ ] imageToByteArray (System.Drawing.Image imageIn) { ms ms = nowy MemoryStream(); imageIn.Save (ms, System.Drawing.Imaging.ImageFormat.Gif); return ms.ToArray(); } Konwersja mojego obrazu na tablicę bajtów. – andreiursan

+1

Próbowałem zrobić to przez 2 dni i zostałem poprowadzony ścieżką HttpHelpers, wyprowadzony ActionResults zwany ImageResults i nie ma mnie gdzie, to rozwiązanie działało po raz pierwszy, Excellent !! –

+0

Brak znaku At w powyższym przykładzie kodu widoku. kroiz

Powiązane problemy