2016-10-11 91 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)" ... /> 
相关问题