我要做的是在剃须刀页面上的列表中显示每个项目:
_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
答案 0 :(得分:0)
这是因为您永远不会创建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访问它时,应确保填充Items字段。