7
votes

Passez l'image du contrôleur et affichez dans une vue à l'aide de ViewBag dans ASP.NET MVC 3

Je suppose que c'est quelque chose de très simple, mais je ne peux pas savoir comment le faire. Dans mon contrôleur, j'ai: xxx

et à mon avis j'essaye ceci: xxx

Cependant, quand je cours, je viens d'obtenir le " Logo "texte.


3 commentaires

Alors, est-ce pendant la charge de la page ou une demande à la demande au serveur?


L'image sera probablement conservée sur un serveur, mais le contenu de la page doit être collecté à partir de la base de données avant la chargement de la page, je suppose que c'est lors de la charge de la page.


C'est une forme avec des images que quelqu'un a déjà créé et il suffit de redessiner lorsque l'utilisateur le demande.


4 Réponses :



5
votes

Utiliser server.mappath pour obtenir le chemin correct de l'image. Supposons que votre dossier Images soit à l'intérieur du dossier contenu normalement inclus dans un projet MVC. Vous pouvez faire quelque chose comme ceci: xxx

et vous n'avez pas à modifier le code à votre vue.


2 commentaires

Je vois. Attendait quelque chose un peu plus facile mais devinez c'est ce que c'est. Merci


Je t'en prie. C'est le moyen le plus simple de le faire, de l'OMI et de résoudre votre genre de problème en général. Mais il y a un bien meilleur moyen de le faire qui implique un peu de configuration, à l'aide des outils de révision d'image. Des outils qui vous assureront que vos images sont servies de la manière la plus efficace.




1
votes
public ActionResult ShowForm()
        {
            ViewBag.Title = Resources.ApplicationTitle;
            ViewBag.LabelStatus = Resources.Status;
            //Logo
           byte[] imgbytes =  File.ReadAllBytes(@"C:\Images\Logo.png");
           return File(imgbytes , "image/png");
        }

<div id="drawForm">
<img src="controllerName/ShowForm" alt="Logo" />    
</div>

0 commentaires