我必须从ViewBag循环,并且需要访问其子类别List下的MainCategory。你可以从Controller获得想法。但我在访问我的子类别项时遇到问题。该错误表示用户没有理由。请看下面的图片以获得更清晰的想法。欢迎任何问题。
控制器:
public ActionResult Index()
{
using (var ctx = new db_zikanalyticsEntities())
{
var vmCats = new List<CategriesViewModel>();
var l1cats = ctx.Level1Cats.ToList();
var l2cats = ctx.Level2Cats.ToList();
foreach (var l1 in l1cats)
{
var catObj = new CategriesViewModel { Level1CatsName = l1.Name };
foreach (var l2 in l2cats)
{
if (l1.Level1CatId == l2.Level1CatId)
{
catObj.Level2CatsList.Add(new Level2Cats
{
Level2CatId = l2.Name,
Name = l2.Name,
Level1CatId = l2.Level1CatId,
Updated = l2.Updated
});
}
}
vmCats.Add(catObj);
}
ViewBag.MainCategory = vmCats;
return View();
}
}
查看:
@foreach (var item in ViewBag.MainCategory)
{
<div class="col-md-3">
<div class="mainCategory">
<h4><u>
<b>@item.Level1CatsName</b>
</u></h4>
<h4>
<i class="fa fa-star" aria-hidden="true"></i>
<i class="fa fa-star" aria-hidden="true"></i>
<i class="fa fa-star" aria-hidden="true"></i>
<i class="fa fa-star-half-o" aria-hidden="true"></i>
<i class="fa fa-star-o" aria-hidden="true"></i>
</h4>
<div class="row">
<div class="col-lg-1">
<ul>
@foreach (var item2 in ViewBag.MainCategory.Level2CatsList)
{
<li>@item2.Name</li>
}
</ul>
</div>
</div>
</div>
</div>
}
答案 0 :(得分:1)
这就是问题所在:
@foreach (var item2 in ViewBag.MainCategory.Level2CatsList)
为了使这成为正确的代码,Level2CatsList需要是MainCategory类的静态成员。是否所有MainCategory实例都具有相同的Level2CatsList值?
可能你的意思是:
@foreach (var item2 in item.Level2CatsList)
如果Level2CatsList是一个实例成员,则上述说法是正确的。
您可能希望为MainCategory包含类def。