Razor Foreach型号列表
本文关键字:列表 Foreach Razor | 更新日期: 2023-09-27 17:54:29
我想做的是在razor页面上显示列表中的每个项目:
_layout.cshtml
<div id="LeftSidebar">
<ul>
@foreach (var x in MenuItems.Items)
{
<li><a href="#">@x.ItemName </a></li>
}
</ul>
</div>
menu.cs
public class Menu
{
public string ItemName { get; set; }
public string Alt { get; set; }
public Menu()
{
}
public Menu(string itemName, string alt)
{
ItemName = itemName;
Alt = alt;
}
}
public class MenuItems
{
public static List<Menu> Items = new List<Menu>();
public MenuItems()
{
Items.Add(new Menu
{
Alt = "test item",
ItemName = "item 1",
});
Items.Add(new Menu
{
Alt = "test item",
ItemName = "item 2",
});
}
}
这就是我目前所拥有的,但它没有显示任何东西?
谢谢Houlahan
这是因为您从未创建MenuItems类的实例,因为您只是访问类中的静态字段-因此构造函数没有运行并添加两个测试项。
尝试用静态构造函数替换MenuItems构造函数:
public class MenuItems
{
public static List<Menu> Items;
static MenuItems()
{
Items = new List<Menu>();
Items.Add(new Menu
{
Alt = "test item",
ItemName = "item 1",
});
Items.Add(new Menu
{
Alt = "test item",
ItemName = "item 2",
});
}
}
这将确保在使用MenuItems.Items.