将数据从控制器传递到View-MVC
本文关键字:View-MVC 控制器 数据 | 更新日期: 2023-09-27 18:30:06
我正在尝试进行一个查询,以接收数据库中的所有数据,并将其显示在我的视图中。
但它不起作用。我搞不清楚是怎么回事,因为我没有犯任何错误。
有人能帮忙吗?
提前感谢
控制器:
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>
}
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>
}