在控制器中使用模型时初始化程序成员声明符无效

Invalid initializer member declarator when using model in controller

我正在尝试制作一个标准菜单,其中包含主菜单项,其中包含像这样的子菜单项。我正在使用 MVC 5。当我在控制器中使用我的模型时,我收到此错误 Invalid initializer member declarator。菜单将类似于:

首页

链接1
链接 2

关于

链接3
Link4

以下是我的模型class:

namespace MyWebsite.Models
{
    public class SubMenu
    {
        public string Title { get; set; }
        public Uri Link { get; set; }
    }

    public class MenuModel
    {
        public string MainMenu { get; set; }
        public List<SubMenu> sMenu { get; set; }
    }
}

这是我的控制器代码:

public ActionResult MakeMenu()
{
      var menu = new List<MenuModel>
      {
            new MenuModel
            {
                  MainMenu = "Home",
                  new List<sMenu> //getting error on this line that 'Invalid initializer member declarator'
                  {

                  }
            },
            new MenuModel
            {
                  MainMenu = "About"
            }
      }.ToList();

      return View(menu);
  }

为什么我不能sMenu这样?

sMenu 不是要在 List<T> 中用作通用类型参数 TType
sMenu 只是 MenuModel 上的 属性。
它的 TypeSubMenu.

应该是:

var menu = new List<MenuModel>
{
    new MenuModel
    {
          MainMenu = "Home",
          sMenu = new List<SubMenu> {},               
    },
    new MenuModel
    {
          MainMenu = "About"
    }
}.ToList();