我有一个包含两个表的视图模型,但是如果我正在更新我的实体框架,例如
查看型号:
public class MyViewModel
{
public IEnumerable<Telephone_Search.Models.tbl_pics> images;
public IEnumerable<Telephone_Search.Models.tbl_users> users;
}
控制器:
[HttpPost]
public ActionResult Index(tbl_pics pic, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
if (file != null)
{
file.SaveAs(HttpContext.Server.MapPath("~/Images/")
+ file.FileName);
byte[] data = new byte[] { };
using (var binaryReader = new BinaryReader(file.InputStream))
{
data = binaryReader.ReadBytes(file.ContentLength);
}
pic.picture = file.FileName;
pic.user_no = 20173;
db.tbl_pics.Add(pic);
db.SaveChanges();
}
return RedirectToAction("Index");
}
return View(pic);
}
然后在我的剃刀视图中使用视图模型,例如@model ViewModel并尝试通过以下方式遍历用户:
@foreach (var img in Model.images) {
<img src="~/images/@pic.picture" width="100" height="100" />
}
值是否返回?
谢谢
答案 0 :(得分:2)
您的viewmodel由两个集合images
和users
组成。
public class MyViewModel
{
public IEnumerable<Telephone_Search.Models.tbl_pics> images;
public IEnumerable<Telephone_Search.Models.tbl_users> users;
}
但是,在您的控制器方法中,您只返回集合images
。 users
仍然为空。
[HttpPost]
public ActionResult Index(tbl_pics pic, HttpPostedFileBase file)
{
....
return View(pic); // you are only returning the images here, not the users, or the viewmodel.
}
您需要在控制器方法中填充users
集合。
其次,这个
@foreach (var img in Model.Users) {
<img src="~/images/@pic.picture" width="100" height="100" />
}
没有意义。这里定义的@pic
在哪里?