我正在尝试进行查询以接收数据库中的所有数据,以便在我的视图中显示它。
但它不起作用。我无法弄清楚发生了什么,因为我没有收到任何错误。
任何人都可以帮忙吗?
提前致谢
控制器:
public ActionResult Details(int id = 0)
{
Persons p= db.persons.Find(id);
var query = from a in db.images
where a.Id_Person== id
select a.FileName;
ViewBag.ImgRev= query;
if (mag == null)
{
return HttpNotFound();
}
return View(p);
}
查看:
@foreach (var p in ViewBag.ImgRev)
{
<div>
<img src="~/Files/" + @p /></div>
}
答案 0 :(得分:1)
linq语句在分配给ViewBag
之前不会进行评估。
尝试:
<强>控制器:强>
ViewBag.ImgRev = query.ToList();
查看:强>
@ {
var imgList = ViewBag.ImgRev as IEnumerable<string>;
}
@foreach (var p in imgList)
{
<div><img src="~/Files/" + @p /></div>
}
使用ViewModel的替代方案:
public class SomePageViewModel
{
public Persons Persons { get; set; }
public IEnumerable<string> Files { get; set; }
}
<强>控制器:强>
...
var model = new SomePageViewModel { Persons = p, Files = query.ToList() };
return model;
查看:强>
@foreach (var file in Model.Files)
{
<div><img src="~/Files/" + @file /></div>
}