2016-12-19 4 views
0

通常のユーザーが複数のイメージをデータベースにアップロードしてから、それらをフェッチして表示できるMVC Webサイトを開発しています。C#.NETデータベースからのイメージの取得と表示

これまでのところ、私は画像を表示することはできますが、複数は表示できません。クラスで私が持っている:

string imagedata = Convert.ToBase64String(decryptedBytes); 
string imageDataURL = string.Format("data:image/jpeg;base64,{0}", imagedata); 
ViewBag.ImageData = imageDataURL; 
return View(); 

と私が持っているビューで:

<img src="@ViewBag.ImageData" height="400" width="500" />. 

は、私は、ビューや方法そのものくださいでのforeachの種類を作るべきか?

答えて

0

まず、ViewBagの使用を避け、@modelを使用して画像オブジェクトを渡します。

私は例えばIList<ImageData>が、例えば、(レイザーCSHTML)の目的のために(あなたのコレクションを入力して、強くお勧めします:

@model IList<string> 

@foreach (var image in Model) 
{ 
    <img src="@image" ... /> 
} 

私もモデルを除外するつもりです - 簡単にするために> ViewModelに変換など。

、コントローラからモデルを取得するには(あなたがすでにデータベースから移入イメージリストを持っていると仮定)View()でそれを渡します

IList imageList = GetListOfImages(user.Id) 
return View(imageList); 
+0

現在、私はイメージリストを持っていません。 dbのみが移入されます。だから、基本的に私はデータベースからリストの右に画像を格納する必要がありますか? –

+0

えええええええええええええええええええん - あなたが選んだデータベースのアクセス権(私はEntity Frameworkを想定しています)があれば、データベースから画像のリストを返す必要があります。通常は、 'context.Images.Where(someQuery).ToList()'でこれを行います。 – G0dsquad

+0

私はこのメソッドをデータアクセス層に持っています。代わりにこれを使うことはできますか? 公開IQueryable GetImages() { return Entity.Images; } –

関連する問題