1
我試圖按照這一點,因爲它被引述在許多地方一個例子:MVC 4樹形視圖菜單
,並使用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」]或.Count()上使用。任何提示我出錯的地方都會很棒。
非常感謝!這解決了計數問題,但是。仍然無法工作,唯一顯示的選項是枚舉器,這對我來說沒有意義,因爲它可以使用。控制器類中的哪些地方? – user1857900
如何轉換爲IEnumerable –
bluetoft
'@ {var menuItems =(ViewData [「AllMenu」] as List);} @ {var children = menuItems.Where(c = > c.PId == item.Id);}'工作,但似乎略顯草率。 IEnumberable沒有,但感謝您的幫助! –
user1857900