2009-09-04 3 views
5

Ich habe ein Objekt vom Typ Bild, das Bild hält. Ich wollte das Bild in der MVC-Ansicht zusammen mit anderen Steuerelementen anzeigen. Die Weise, die ich mir vorstellen kann, ist, Bild auf Platte temporär zu speichern und src der img Kontrolle zu setzen. Ich bin mir sicher, dass es einen besseren Weg dafür geben würde.Anzeige Bild von IMAGE-Objekt in MVC

Antwort

2

Sie können einen Handler zum Streamen von Bildern schreiben und dann auf den Streamer in Ihrem Image-Tag verweisen.

Zum Beispiel haben Sie http://myapp/media.ashx?imageId=10 streamen das Bild. In Ihrer Seite verweisen Sie so: <img src="http://myapp/media.ashx?imageId=10"/>.

Auf diese Weise müssen Sie nicht vorübergehend auf die Festplatte schreiben.

1

Sie können Ihr Bild als Antwortinhalt einer Controlleraktion bereitstellen. Diese Antwort hat den Bildtyp als Inhaltstyp.

4

Der einfachste Weg, dies zu tun, wäre meiner Meinung nach eine FileStreamResult von Ihrem Controller zurückgeben.

public FileResult GetImage() 
{ 
    string path = "c:\images\image.jpg"; 
    return new FileStreamResult(new FileStream(path, FileMode.Open), "image/jpeg"); 
} 

Dies ist eine einfache Implementierung, sondern gibt Ihnen einen Ausgangspunkt für das, was Sie zu tun versuchen.

4

Wenn Sie daran interessiert sind, @Giovanni's Antwort zu implementieren, dann habe ich einige Code, der hilfreich sein kann von einer früheren Antwort Ich gab here. Die ImageHandler-Klasse ist ein Beispiel dafür, was Sie in Giovans Fall implementieren möchten.

0

Sie können das Bild in eine Base64-Zeichenfolge konvertieren und sie dem src-Attribut des img-Tags zuweisen.

<img alt="Embedded Image" width="168" height="32" 
    src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgA..." /> 

http://www.greywyvern.com/code/php/binary2base64