2012-06-12 215 views
1

我目前正在使用的webApp需要我將照片作爲byte[]存儲在數據庫中。然後它需要我將它們拉出並在視圖中顯示它們。我創建了一個photoContainer,它包含位圖而不是byte[]並將其傳遞給視圖。但我似乎無法弄清楚如何從那裏顯示它。我已經嘗試將源設置爲model.Image,但這不起作用。無論如何,在視圖中我的模型中顯示一個位圖?在剃刀模型中顯示位圖

在此先感謝。

回答

2

在一個控制器發生這種

public FileResult GetImg(int id) 
    {      
     var image = db.Categories.First(m => m.CategoryID == id).Picture; 

     byte[] imageData; 
     if(image != null) 
     { 
      imageData = image.ToArray(); 
      return File(imageData, image.contentType); 
     } 
     else 
     { 
      return null; 
     } 
    } 

在您看來這個地方

<img src="@Url.Action("GetImg", "ControllerTheActionAboveIsPlacedIn", new { id = Model.ImageId})" /> 
+0

這種解決方案需要一個新的數據庫調用每個圖像進行。視圖級別的模型已經包含byte []。現在沒有更高效的方式來渲染圖像,而不需要返回每個圖像的數據庫? – ElHaix

+0

您可以使用這種方法,但在IE7及以下版本中不起作用。 IE8也是有限的。 http://stackoverflow.com/questions/2644542/outputting-a-byte-arrain-into-the-src-attribute-of-an-img-tag/2644598#2644598 –