2016-12-19 82 views
0

我正在開發一個MVC網站,普通用戶可以上傳多張圖片到數據庫中,然後再去撿他們並顯示它們的能力顯示圖像。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" ... /> 
} 

我也打算離開了型號 - >視圖模型轉換等爲簡單起見。

要獲得來自控制器的模式,在View()傳遞(假設你已經有了圖像列表從數據庫中填充):

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

目前我沒有圖像列表。只有數據庫填充。所以基本上我必須將來自db的圖像存儲到列表中嗎? –

+0

是的 - 無論您選擇的數據庫訪問是什麼(我將假設實體框架),那麼您將需要從數據庫中返回圖像列表。通常情況下,你可以通過'context.Images.Where(someQuery).ToList()' – G0dsquad

+0

來實現這一點。我在數據訪問層使用了這種方法。我可以用這個嗎? 公共的IQueryable GetImages() { 返回Entity.Images; } –