尝试获取给定文档类型的子项,并将umbracoNavihide设置为false:
以下产生正确的输出。
@foreach (var child in root.Children.Where("ContentTypeAlias == \"DocumentTypehere\""))
{
if (child.umbracoNaviHide == "False")
{
continue;
}
<li>@child.Name</li>
}
这不是:
@foreach (var child in root.Children.Where("umbracoNaviHide == @0 && ContentTypeAlias == \"DocumentTypehere\"","False"))
{
<li>@child.Name</li>
}
答案 0 :(得分:2)
umbracoNaviHide
:
虽然这些特殊的别名 [原文如此] [recte:do] 很棒,而且非常容易使用 (如果你没有偶然发现,完全不可能发现 提及其用法的文档),这些的问题是 他们是'魔术'字符串,真的是一团糟(读:他们是黑客 在核心内部。)
所以他们不会以我们从v4中知道的形式回到v5。
所以,除了Linq仿制品有点被打破之外,简短的回答是这个(任何一种形式)不应该起作用(Athul的回答也不应该)。
答案很长,只有当您明确支持此属性作为文档类型的一部分时,才能使用此属性(以及其他类似属性)。但是,有一项功能请求要求“内置”umbraco...
属性the words of Niels Hartvig。
答案 1 :(得分:0)
你可以像
那样做@foreach (var child in root.Children.Where("umbracoNaviHide != true && NodeTypeAlias == \"DocumentTypehere\" ")
{
<li>@child.Name</li>
}
答案 2 :(得分:0)
你可以写一下umbracoNaviHide的支票:
if (!child.umbracoNaviHide)
{
continue;
}
<li>@child.Name</li>
答案 3 :(得分:0)
只是添加另一种方法 - 一些现有的答案对我不起作用 - 你可以试试这个。在Umbraco 4.11中为我工作
@foreach (var child in root.Children.Where(child => child.GetPropertyValue("umbracoNaviHide") == "0"))
{
..
}