[英]Razor Foreach model list
我想做的是在剃刀页面的列表中显示每个项目:
_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",
});
}
}
多数民众赞成在我到目前为止,但它没有显示任何东西?
谢谢侯拉罕
这是因为您永远不会创建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访问“项目”字段时将其填充。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.