2016-10-11 60 views
0

如何從數據庫加載URL路徑以查看外鍵「BAZ_ID」?MVC查看圖片網址:無法將lambda表達式轉換爲字符串

IMAGE_URL:

~/UploadImg/Untitled.png

控制器:

public ActionResult Bazar() 
    { 
     WebEntities db = new WebEntities(); 
     var data = db.bazar.Include(c => c.images); 
     return View(data.ToList()); 
    } 

,並查看:

<div class="col-sm-2"> 
      <img src= "@Url.Content(modelItem => item.images.Where(a => a.BAZ_ID == item.ID).Select(b => b.IMAGE_URL).FirstOrDefault())" width="150" height="150" /> 
     </div> 

鑑於我得到錯誤:

Cannot convert lambda expression to type 'string' because it is not a delegate type

+1

刪除前導'modelItem =>'。但是您的查詢屬於控制器,而不是視圖,您應該傳遞包含圖像url屬性的視圖模型。 –

+0

'FirstOrDefault()'不保證返回不是'null'的對象。 –

+0

@StephenMuecke考慮將你的評論添加爲答案 - 很多次我看到你的優秀答案,我無法「正確地」提升他們;-) –

回答

2

Url.Content方法需要一個字符串作爲參數,而不是lambda表達式。

你可以在你循環改變代碼(下降領先modelItem =>

<img src= "@Url.Content(item.images.Where(a => a.BAZ_ID == item.ID).Select(b => b.IMAGE_URL).FirstOrDefault())" ... /> 

然而,查詢控制器,不認爲屬於,並且您的視圖模型應該包含一個屬性(比如說)string ImageUrl您在控制器中填充,然後在視圖中查看

<img src= "@Url.Content(item.ImageUrl)" ... /> 
相關問題