私はMVC(オブジェクト指向のC#exeアプリから来ています)とStackoverflowを初めて使用します。私はMVCを使用してコードを効率的に実行しようと苦労してきました。データベースから返されるモデルデータがあり、そのデータとともにjpegイメージであるバイトのフィールドがあります。この段階で、データベースを1回呼び出しました...
今私が立ち往生しているのは、入力されたモデルデータがレンダリングされるビューに入ると、それを単純にループして各データ行に画像をレンダリングすることはできないということです。それを機能させるために私が見つけた唯一のことは、FileContentResultを返すActionメソッドを呼び出すことですが、これには、画像ごとにデータベースへの新しい呼び出しが必要です。
解決策として、次の問題を解決する3つの異なるアプローチを試しました。
- MVCがビューでFileContentResultを受信する方法を満たすために、Actionメソッドを介してバイト配列をコントローラーに戻すことができないようです。Actionメソッドは、単純な型のみを受け入れたいと考えています。
- 特に、モデルデータのエントリごとに数回のラウンドトリップが発生する場合は特に、ビューに既にあるバイトデータのデータベースに戻るようにコントローラーに要求したくありません。
- Data Uriの使用は機能しますが、まだ十分なブラウザーでサポートされていません。
誰かがこのような問題を処理するための最良の方法を教えてもらえますか?問題1または2で作業する必要がありますか、それとも私が見逃している別のアプローチがありますか?
FileContentResultをレンダリングできるように、バイト配列をコントローラーに戻すために問題1で最初に使用しようとしたコードを次に示します。
<img src=" @{Html.RenderAction("RenderMemberImage", "Home", new { @pic = x.ThumbnailData });}" />
[HttpGet]
public FileContentResult RenderMemberImage(byte[] pic)
{
return new FileContentResult(pic, "mime/jpeg");
}