Question

Je suis nouveau sur asp.net mvc, mais j'essaie de faire une application amusante avec GDI + et je dois faire un affichage d'image avec asp.net mvc.

J'ai un modèle qui a une propriété d'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");

        }
    }
}

Le contrôleur envoie à la vue les éléments suivants:

public ActionResult Index()
        {

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

La vue ressemble à ceci:

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

Comment afficher cette propriété d'image?

J'ai besoin de cette image d'arrière-plan pour une div. Je n'ai pas besoin de redimensionner l'image, je n'ai besoin que de l'afficher à sa taille normale.

Existe-t-il un Helper HTML qui me manque?

Merci pour votre temps!

Était-ce utile?

La solution

Vous devez écrire une action du contrôleur qui écrira l'image dans le flux de réponses et définira le type de contenu approprié avec le libellé "image / png". Vous pouvez ensuite utiliser la balise img pour référencer cette action dans votre vue:

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

Et dans votre vue:

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

Autres conseils

Vous aurez besoin d'un gestionnaire HttpHandler si vous voulez faire des choses comme celle-ci.

http://dotnetperls.com/ashx-handler

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top