食人鱼 CMS 删除管理器菜单项

Piranha CMS remove manager menu item

文档中指出您可以从界面中删除默认视图。我使用以下代码添加了一个新的菜单项选项卡:

Piranha.WebPages.Manager.Menu.Where(m => m.InternalId == "Content").Single().Items.Add(
     new Piranha.WebPages.Manager.MenuItem()
     {
         Name = "TSI Post",
         Action = "Index",
         Controller = "TSIPost",
         Permission = "ADMIN_POST"
     });

我想删除默认的 Post 选项卡。 我尝试了以下代码的多种变体。

 Piranha.WebPages.Manager.Menu.Where(m => m.InternalId == "Content").Single().Items.Remove(
     new Piranha.WebPages.Manager.MenuItem()
     {
         InternalId = "Posts",
         Name = "Posts",
         Action = "index",
         Controller = "post",
         Permission = "ADMIN_POST"
     });

删除选项卡的正确语法是什么?

第二段代码的问题在于,您正在创建一个尚未添加的全新 MenuItem,然后您尝试将其从集合中删除。这个新对象不存在,所以什么也没有发生。要删除默认的 post 页面,您可能需要编写如下内容:

Manager.Menu.Where(m => m.InternalId == "Content")
  .Single().Items.Remove(
    Manager.Menu.Where(m => m.InternalId == "Content").Single()
      .Items.Where(i => i.InternalId == "Posts").Single());

此语句删除当前菜单集合中具有内部 ID "Posts" 的项目。

此致

哈坎