剃刀的foreach型号列表
问题描述:
什么,我试图做的是在剃刀页上的列表显示每个项目:剃刀的foreach型号列表
_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它的各个项目领域被填满。
你没有发布控制器/动作... – asawyer