2009-09-04 42 views
5

画像を保持するタイプIMAGEのオブジェクトがあります。 他のコントロールと一緒にMVCビューで画像を表示したかったのです。 私は考えることができる方法は、一時的にイメージをディスクに保存し、imgコントロールのsrcを設定することです。 私はこれを行うより良い方法があると確信しています。MVCのIMAGEオブジェクトの画像を表示

答えて

2

イメージをストリーム出力するハンドラを作成し、イメージタグでストリーマを参照することができます。

たとえば、http://myapp/media.ashx?imageId=10の画像が出力されます。あなたのページであなたのように参照してください: <img src="http://myapp/media.ashx?imageId=10"/>

この方法では、一時的にディスクに書き込む必要はありません。

1

コントローラアクションの応答内容として画像を表示できます。この応答はコンテンツタイプとして画像タイプを有する。

4

私の意見でこれを行う最も簡単な方法は、コントローラからFileStreamResultを返すことです。

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

これは簡単な実装ですが、実行しようとしていることの出発点です。

4

@Giovanni'sの回答を実装することに興味がある場合は、私には与えられた過去の回答から役立ついくつかのコードがありますhere。 ImageHandlerクラスは、Giovanniの場合に実装したいものの例です。

0

イメージをBase64文字列に変換し、imgタグのsrc属性に割り当てることができます。

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

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