繁体   English   中英

Razor Foreach型号列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM