我试图遵循这一点,因为它在许多地方被引用为示例:
并提出了以下内容(由于我使用 mvc4 而不是 2 进行了一些更改)
在控制器类中:
public ActionResult Index()
{
MenuDBContext db = new MenuDBContext();
ViewData["AllMenu"] = db.Menus.ToList();
return View(db.Menus.ToList().Where(c => c.PId == null));
}
视图类:
@{
ViewBag.Title = "Index";
}
@model IEnumerable<Geo.Models.Menu>
<h2>Index</h2>
@foreach (var item in Model)
{
<li>
@item
@{var children = ViewData["AllMenu"].Where(c => c.PId == item.Id);}
@if (children.Count() > 0)
{
<ul>
@{Html.RenderPartial("ItemControl", children);}
</ul>
}
</li>
}
我一生都无法弄清楚为什么我不能在 ViewData["AllMenu"] 上使用 .Where 或对儿童使用 .Count() 。任何关于我哪里出错的提示都会很棒。