2009-09-11 32 views
6

Soy nuevo en asp.net mvc, pero estoy tratando de hacer una aplicación divertida con GDI + y necesito ver algunas imágenes con asp.net mvc.ASP.Net MVC ¿Cómo mostrar una propiedad de imagen de un modelo en una vista?

tengo un modelo que tiene una propiedad de imagen:

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

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

     } 
    } 
} 

El controlador envía a la vista los siguientes:

public ActionResult Index() 
     { 

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

La vista se parece a esto:

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

¿Cómo puedo mostrar esa propiedad de imagen?

Necesito esa imagen de fondo para un div. No es necesario cambiar el tamaño de la imagen, solo tengo que mostrarla en su tamaño normal.

¿Hay un Html Helper que echo de menos?

Gracias, por su tiempo!

Respuesta

15

tiene que escribir una acción de controlador que va a escribir la imagen en la secuencia de respuesta y establecer el tipo de contenido apropiado decir "image/png". A continuación, puede utilizar la etiqueta img hacer referencia a esta acción en su vista:

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

Y dentro de la vista:

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

Esto resolvió mi problema, pero necesitaba usar esto: public byte [ ] imageToByteArray (System.Drawing.Image imageIn) { MemoryStream ms = new MemoryStream(); imageIn.Save (ms, System.Drawing.Imaging.ImageFormat.Gif); return ms.ToArray(); } para convertir mi imagen en una matriz de bytes. – andreiursan

+1

He intentado hacer esto durante 2 días y me han guiado en el camino de HttpHelpers, deduje ActionResults llamado ImageResults y no me ha llevado a ningún lado, esta solución funcionó por primera vez, ¡¡Excelente !! –

+0

Falta el signo En en el ejemplo de código de vista anterior. kroiz

Cuestiones relacionadas