为了能够过滤掉不应该使用.Where(“ Visible”)渲染的项目,我需要一个名为umbracoNaviHide的属性,该属性返回true或false。
在早期版本中,它已添加到“通用”选项卡中。但是,现在您不能再追加到该选项卡了。
我现在如何完成隐藏页面?
这是我的佛经:
@foreach (var Area in Model.Content.Children.Where("Visible"))
{
Run Code Online (Sandbox Code Playgroud)
这是关于它的声明。但我找不到任何解决方法。
相关更改摘要-7.4 beta-无法将属性添加到“常规属性”选项卡的选项
说明-在7.4 beta中,无法再将属性添加到“常规属性”标签。我知道这样做是因为属性可以在该选项卡上隐藏一些,并且通常在单独的选项卡上更好。但是在某些情况下,该选项卡上的属性更好。
您可以将该属性作为true / false数据类型添加到任何选项卡。但是,需要特别注意的是,umbracoNaviHide并没有做任何特殊的事情,它只是一个魔术字符串,当实现为true / false数据类型时,它可以与
.Where("Visible").
Run Code Online (Sandbox Code Playgroud)
我个人不再使用它。如果需要使项目可见或不可见,则可以更具体地命名属性。例如,当您希望某些节点可见而其他节点不可见时,在实现菜单时通常很有用。我通常有一个“菜单”选项卡,其中一个属性是一个真/假类型,称为“在菜单中显示”,别名为showInMenu。
在代码中可能类似于以下内容(我使用TypedContentAtXPath来获取特定文档类型的父节点。当然,可以通过多种方式来实现)
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
}
Run Code Online (Sandbox Code Playgroud)
希望能有所帮助
Ĵ
| 归档时间: |
|
| 查看次数: |
391 次 |
| 最近记录: |