Domanda

Sono nuovo di asp.net mvc, ma sto provando a fare un'app divertente con GDI + e ho bisogno di fare un po 'di visualizzazione delle immagini con asp.net mvc.

Ho un modello che ha una proprietà 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");

        }
    }
}

Il controller invia alla vista quanto segue:

public ActionResult Index()
        {

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

La vista è simile alla seguente:

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

Come posso visualizzare quella proprietà dell'immagine?

Ho bisogno di quell'immagine di sfondo per un div. Non ho bisogno di ridimensionare l'immagine, devo solo visualizzarla nella sua dimensione normale.

Esiste un helper HTML che mi manca?

Grazie per il tuo tempo!

È stato utile?

Soluzione

Devi scrivere un'azione del controller che scriverà l'immagine nel flusso di risposta e imposterà il tipo di contenuto corretto per dire " image / png " ;. Quindi puoi usare il tag img per fare riferimento a questa azione nella tua vista:

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

E dentro la tua vista:

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

Altri suggerimenti

Avrai bisogno di un HttpHandler se vuoi fare cose del genere.

http://dotnetperls.com/ashx-handler

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top