Pregunta

Soy nuevo en asp.net mvc, pero estoy tratando de hacer una aplicación divertida con GDI + y necesito hacer una vista de imagen con asp.net mvc.

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 lo siguiente:

public ActionResult Index()
        {

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

La vista se ve así:

<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 muestro esa propiedad de imagen?

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

¿Hay un ayudante HTML que extraño?

¡Gracias por tu tiempo!

¿Fue útil?

Solución

Necesitas escribir una acción de controlador que escribirá la imagen en el flujo de respuesta y establecerá el tipo de contenido adecuado para decir " imagen / png " ;. Luego puede utilizar la etiqueta img para hacer referencia a esta acción en su vista:

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

Y dentro de tu vista:

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

Otros consejos

Necesitarás un HttpHandler si quieres hacer cosas como esta.

http://dotnetperls.com/ashx-handler

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top