1

umbraco Web サイトのカミソリで if ステートメントを実行しようとしています。そのページとツリー内のすべての子にスタイルシートを追加できるようにするには、 Name プロパティでページとそのすべての子を取得する必要があります

親を問題なく取得できますが、子孫がどこに行くかわからないため、子孫に問題がありますか?

これまでのところ、私は持っています:

@{
    var selectedNode = @Model.Name();  
    if(@selectedNode == "blue")
    {
        do this
    }
}
4

1 に答える 1

3

あなたはかみそりに少し慣れていないようです。この回答には、Umbracoのかみそりの構文について学び始めるのに役立ついくつかの優れたリソースのリストがあります。

あなたの質問に答えて、あなたが何を達成しようとしているのかを正確に理解しているかどうかはわかりません。私が見ることができることから、あなたはその名前またはその祖先の1つの名前に基づいてページにスタイルシートを追加したいと思います。名前をキーオフするのは最善の選択肢ではないかもしれないことをお勧めします。より安定した解決策は、ノードのIDを使用することです。しかし、うまくいけば役立つはずのコードサンプルを次に示します。

@{ 
    var nodes = Model.AncestorsOrSelf().Where("Name == @0", "Blue");

    if (nodes.Count() > 0)
    { 
        <link type="text/css" rel="Stylesheet" href="/css/style.css" />
    }
}

上記のスニペットは、ノードの祖先(それ自体を含む)を取得し、ノードの名前( "Blue")でフィルタリングします。次に、コレクションにノードがあるかどうかを確認します。存在する場合は、現在のノードが「Blue」であるか、「Blue」という名前の祖先があるため、スタイルが適用されます。

于 2013-02-07T04:17:01.140 に答える