Reputation: 45
I try display in View using loop all elements from ViewBag
My ViewBag (in controller class)
ViewBag.MenuItems =
(
from components in _context.Components
where components.ComponentName== "menuPosition"
select new
{
controller = components.valueI,
action = components.valueI,
}
).ToList();
My View
@foreach (var item in ViewBag.MenuItems)
{
<p>@item.controller</p>
}
I got error
RuntimeBinderException: 'object' does not contain a definition for 'controller'
Upvotes: 0
Views: 54
Reputation: 460
Use ViewBag as List while looping it will treat viewbag element as MenuItem class object
@foreach (var item in ViewBag.MenuItems as List<MenuItem>)
{
<p>@item.controller</p>
}
Add class
public class MenuItem
{
public string controller {get;set;}
public string action {get;set;}
}
In controller class use
ViewBag.MenuItems =
(
from components in _context.Components
where components.ComponentName== "menuPosition"
select new MenuItem
{
controller = components.valueI,
action = components.valueI,
}
).ToList();
Upvotes: 1