2012-11-28 24 views
1

我試圖在Umbraco安裝的頂部和子菜單項上設置「當前」類。頂部和子菜單中的當前鏈接

頂部菜單是這樣的:

Home Products About Contact 

現在,當我點擊讓我們說產品,然後我設置類名稱爲「電流」。同時,它加載一個子菜單這樣的:

Jeans 
Sweeters 
T-shirts 
- Red 
- Green 
- Blue 

,當我點擊讓我們說Sweeters然後我wan't產品鏈接和鏈接sweeters有當前類。我怎樣才能做到這一點?

的頂部菜單

@{ 
    <ul class="topnavigation"> 
    @foreach (var c in Model.AncestorOrSelf(2).Children.Where("umbracoNaviHide!=true")) 
    { 
     <li class="@(Model.Id == c.Id ? "current" : "")"><a href="@c.Url">@c.Name</a></li> 
    } 
    </ul> 
} 

代碼代碼子

@{ 
<ul> 
    @foreach (var page in @Model.AncestorOrSelf(3).Children) 
    { 
     string style = string.Empty; 
     if (Model.Id == page.Id) { style = "class=current"; } 
     <li @style><a href="@page.Url" @Html.Raw(style)>@page.Name</a></li> 
      if (page.Childen != null && page.Children.Count() > 0 && Model.AncestorsOrSelf().Where("Id == @0", page.Id).Count() > 0) 
      {     
       <ul> 
        @foreach (dynamic secondPage in page.Children.Where("!umbracoNaviHide")) 
        {  
         string style1 = string.Empty; 
         if (Model.Id == secondPage.Id) { style1 = "class=current"; }     
         <li @style1> 
          - <a href="@secondPage.Url">@secondPage.Name</a> 
         </li> 
        } 
       </ul> 
      } 
    } 
</ul> 
} 

回答

1

一個頁面有一個Path屬性,該屬性包含一個逗號分隔的代表頁面的祖先ID名單。

您可以使用類似@Model.Path.Contains(c.Id.ToString())的內容來檢查產品頁面的ID是否存在於當前頁面的Path屬性中。

+0

謝謝,這個伎倆; o) –

相關問題