0

I am working on dynamic menus. Using Session Variable by passing whole object. As can be seen from controller:

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

In view:

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

QueryHelper Fuction which is responsible of getting data:

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();
}

The error I am getting is:

foreach statement cannot operate on variable of type object because object doesn't contain a public definition for GetEnumerator

1 Answer 1

3

You need to cast your Session object

 @{    
    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>
        }
    }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.