2015-04-20 60 views
0

我正在使用動態菜單。通過傳遞整個對象來使用會話變量。如可以從控制器可以看出:如何在foreach-MVC5中使用Session變量對象查看

Session["PackageSbMenu2"] = QueryHelper.Get_Menu("Manage Services", 3).ToList(); 

鑑於:

@foreach(var t in (Session["PackageSbMenu2"])) 
{ 
    <li><a [email protected](t.Controller, t.Action)>t.Name</a></li> 
} 

QueryHelper函數的恆等式,其負責獲取數據:

public static List<MenusDM> Get_Menu(string name, int ParentMenuId) 
{ 
    AutosLoanDbContext context = new AutosLoanDbContext(); 
    var menues = from parent in context.MenuInRole 
    join child in context.Menu on parent.MenuId equals child.MenuId 
    where child.Name == name && child.ParentMenuId == ParentMenuId 
       select child; 
    return menues.ToList(); 
} 

我正的誤差是:

foreach語句不能在對象類型變量的操作,因爲對象不包含公共定義的GetEnumerator

回答

4

你需要投你的Session對象

@{  
    var menu = Session["PackageSbMenu2"] as List<MenusDM>; 
    if(menu != null) 
    { 
     foreach(var t in menu) 
     { 
     <li><a [email protected](t.Controller, t.Action)>t.Name</a></li> 
     } 
    } 
} 
+0

感謝答覆,,,我有更新的問題,,,由於互聯網問題,對於遲到的回覆抱歉 –

+0

偉大,非常感謝 –