MVC查看图像URL:无法将lambda表达式转换为字符串

时间:2016-10-11 06:13:47

标签: c# asp.net-mvc lambda

如何使用外键“BAZ_ID”将数据库的URL路径加载到视图?

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>

在视图中我收到错误:

  

无法将lambda表达式转换为'string'类型,因为它不是委托类型

1 个答案:

答案 0 :(得分: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)" ... />