为了能够过滤掉不应该用.Where(“Visible”)渲染的项目,我需要一个名为umbracoNaviHide的属性,它返回true或false。
在早期版本中,这已添加到“通用”选项卡中。但是现在你不能再附加到那个标签了。
我现在如何完成隐藏页面?
这是我的预言:
@foreach (var Area in Model.Content.Children.Where("Visible"))
{
这是关于它的声明。但我找不到任何解决办法。
相关更改摘要 - 7.4 beta - 选项无法向“通用属性”选项卡添加属性
描述 - 在7.4测试版中,不再可以添加 属性到“通用属性”选项卡。我知道这已经完成了 因为属性可以隐藏在该选项卡上,通常是 在单独的选项卡上更好。但有些情况下 该标签上的属性更好。
答案 0 :(得分:4)
您可以将该属性作为true / false数据类型添加到任何选项卡。但是,重要的是要注意umbracoNaviHide没有做任何特殊的事情,它只是一个魔术字符串,当实现为真/假数据类型时,它可以与
一起使用.Where("Visible").
我个人不再使用它了。如果我需要让物品可见或不可见,那么我会更具体地命名物业。例如,在实现您希望某些节点可见而不是其他节点的菜单时,它通常很有用。我通常有一个菜单选项卡,其中一个属性是名为在菜单中显示的真/假类型,别名为showInMenu
。
在代码中它可能类似于下面(我使用TypedContentAtXPath来获取特定doc类型的父节点。当然有各种方法可以做到这一点)
var homeNode = Umbraco.TypedContentAtXPath("//MyHomePageDocType").First();
var menuItems = homeNode.Children.Where(item=>item.GetPropertyValue<bool>("showInMenu"));
foreach(var item in menuItems)
{
// Do your menu stuff here
}
希望有所帮助
Ĵ
答案 1 :(得分:1)