私の最近のプロジェクトでは、すべてTrue/Falseプロパティの中にumbracoNaviHideが実装されています。私の7.6.9アップグレードされたプロジェクトでは、真実/偽の価値を得ることができません。umbracoNaviHideは新しいプロジェクトでは機能しません
私のマスターコンポジションでは、「ナビゲーション」タブとTrue/Falseプロパティがあります。私のすべてのページは、そのコンポジションを継承します。私のような何かをするとき
:
var menuItems = CurrentPage.Site().Children;
@foreach(var item in menuItems) {
if(item.IsVisible()) {
<!--show element-->
}
}
それは動作しません。それは私の最後のすべてのプロジェクトにあるように、うまくいくはずです。私が試したことは次のとおりです。
var menuItems = CurrentPage.Site().Children.Where("Visible");
var menuItems = CurrentPage.Site().Children.Where("umbracoNaviHide == false"); //setting this to true gives me no results
var menuItems = CurrentPage.Site().Children.Where(x => x.IsVisible());
var menuItems = CurrentPage.Site().Children.Where("randomProperty == false"); //or true
foreach(var item in menuItems) {
if(!item.HasValue("umbracoNaviHide)) { <!-- show item --> }
if(item.GetPropertyValue("umbracoNaviHide")) == "false") { <!-- show item --> }
}
私はそうだと思います。 ModelsBuilderを更新しました。私はプロジェクトを再開しました。私はプロパティを削除してreaddしました。私は基本的にすべてを試しましたが、うまく動作しません。
何が地球上にありますか?
更新:これをチェックしてください。これはsoooooooooooooooooooooooooooooooooooo奇妙です:
@foreach(var item in menuItems) {
<p>@item.GetPropertyValue("umbracoNaviHide") - @item.Name</p>
}
これは私に次のようになります:
FALSE - Our offers
FALSE - Technology
TRUE - Projects
FALSE - About us
FALSE - Gallery
TRUE - Contact
しかし、これはumbracoNaviHide
は、バックオフィスでのセットアップ方法です:
Ticked - Our offers
Not ticked - Technology
Ticked - Projects
Not ticked - About us
Not ticked - Gallery
Ticked - Contact
これは可能ですか?今明らか
だから、あなたは全く存在しない子供たちを挙げたいと思ったのですか? :)あなたはいつでもChildren.Any(x => x.IsVisible())または同様のものをチェックすることができます。それで解決しましたか? –
@MarcinZajkowski Uh no、umbracoNaviHideを使用して、そのプロパティの値に応じて表示/非表示にする要素のメニューを作成したいと考えています。 – MortenMoulder
.Children(x => x.IsVisible())を使って子どもを連れてみることはできますか? –