我最近在我的视图中更改了我的网站结构以使用两个模型,但现在我的视图没有填充任何内容。希望有人可以帮我弄清楚什么是错的。
型号:
namespace FTv2.Models
{
public class UnitViewModel
{
public Unit Unit { get; set; }
public int TradeCount { get; set; }
}
public class UnitViewModelDBContext : DbContext
{
public DbSet<Trade> Movies { get; set; }
public DbSet<Unit> Units { get; set; }
}
}
控制器:
var units = db.Units;
var students = db.Units.Select(u => new UnitViewModel()
{
Unit = u,
TradeCount =
db.Movies.Where(t => t.Name == u.Name).Count()
});
return View(students.ToPagedList(pageNumber, pageSize));
查看:
@model PagedList.IPagedList<FTv2.Models.UnitViewModel>
<table style="border-width: 1px; border-color:#000000; border-style: solid; border-top: 2px; border-top-color:#000000; border-top-style: solid;">
<tr>
<th></th>
<th>Name</th>
<th>Type</th>
<th>Skill</th>
<th>Rating</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@{ ViewBag.ImgUrl = item.Name + ".png";}
<a href="/Images/@ViewBag.ImgUrl" data-lightzap="" ><img src="/Images/@ViewBag.ImgUrl" HEIGHT="66" WIDTH="50" ></a>
</td>
<td>
<a href="/ActiveTrades?Name=@item.Unit.Name">@Html.DisplayFor(modelItem => item.Unit.Name)</a>
</td>
<td>
@Html.DisplayFor(modelItem => item.Unit.Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.Unit.Skill)
</td>
<td>
@Html.DisplayFor(modelItem => item.Unit.Rating)
</td>
<td>
@Html.DisplayFor(modelItem => item.TradeCount)
</td>
</tr>
}
</table>
提前感谢您的帮助,我真的很感激!
编辑:确认的页面列表不是问题,因为它甚至在返回普通视图时仍然存在。
答案 0 :(得分:0)
UnitViewModelDBContext设置是否可以与您的数据库一起使用?您可以使用常规DbContext按照之前的其他问题填充单位。
答案 1 :(得分:0)
什么是modelItem
?使用@Html.DisplayFor(item => item.XXX)
是否有效,因为循环变量为item
?
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Unit.Type)
</td>