2017-08-22 9 views
0

質問ビルダーを使用してUmbraco 7でドロップダウンを作成しようとしています。ドロップダウンは、他のページへのリンクも含むナビゲーションバーの一部です。このページには、Razorコード付きのHTMLが含まれています。クエリビルダーとのリンクのドロップダウン表示

@{ 
          var selection = Model.Content.Site().FirstChild("Sprog").Children() 
               .Where(x => x.IsVisible()); 
         } 
         <ul class="sf-menu well" data-type="navbar"> 
          @foreach(var item in selection){ 
           if(item.Name == "Sommerhuse") { 
            <li> 
             <a href="@item.Url">Sommerhuse</a> 
              @{ 
               var selection2 = Umbraco.TypedContent(1090).Children() 
                    .Where(x => x.IsVisible()); 
              } 
              <ul> 
               @foreach(var sommerhus in selection2){ 
                <li> 
                 <a href="@sommerhus.Url">@sommerhus.Name</a> 
                </li> 
               } 
              </ul> 
            </li> 
           } else { 
            <li> 
            <a href="@item.Url">@item.Name</a> 
           </li> 
           } 

          } 
         </ul> 

私は私が私のナビゲーションバーのクエリビルダにドロップダウンのために必要なコンテンツを別のクエリビルダを入れ子にし、その

を反復処理しようとしたしかし、これはまだドロップダウンを作成しません。代わりに、ドロップダウンを表示する静的リンクを返します。私のHTMLプロトタイプでは、このコードを使ってドロップダウンがうまく動作します。

<nav class="nav pull-right"> 
         <ul class="sf-menu well" data-type="navbar"> 
          <li class="active"> 
           <a href="index.html">Forside</a> 
          </li> 
          <li> 
           <a href="index-1.html">Lejebetingelser</a> 

          </li> 
          <li> 
           <a href="index-2.html">Sommerhuse</a> 
           <ul> 
            <li> 
             <a href="sommerhus.html">Blokhus</a> 
            </li> 
            <li> 
             <a href="#">Hvide Sande</a> 
            </li> 
            <li> 
             <a href="#">Langeland</a> 
            </li> 
            <li> 
             <a href="#">Marielyst</a> 
            </li> 
            <li> 
             <a href="#">Ebeltoft</a> 
            </li> 
            <li> 
             <a href="#">Rørvig</a> 
            </li> 
            <li> 
             <a href="#">Bogense</a> 
            </li> 
           </ul> 
          </li> 

          <li class=""> 
           <a href="index-4.html">Kontakt</a> 
          </li> 
          <li> 

          </li> 
         </ul> 
        </nav> 

何らかの理由で悪い書式設定をするとお詫び申し上げます.cshtmlファイルの自動フォーマットを拒否します。

答えて

0

あなたの剃刀のスクリプトに<nav class="nav pull-right">はありません。

ヒント:ページの名前を比較しないでください。これは、コンテンツエディタでノード名が変更された場合にドロップダウンが解除されるためです。 (それは別のドキュメントタイプの場合)

if(item.Name == "Sommerhuse") { // BAD IDEA 

むしろ

if(item.DocumentTypeAlias == "aliasOfTheDocumentType") { // much safer 

documentTypeAliasを使用するページはもちろんの特殊なドキュメントタイプを持っている場合にのみ動作すること。

関連する問題