2013-02-06 72 views
1

我想在一個umbraco網站的剃刀上做if語句。我需要通過Name屬性獲取頁面及其所有子項,以便能夠將樣式表添加到該頁面以及該樹中的任何子項後裔或Umbraco的自己

我可以讓父項沒有問題,但是與後代有困難我不確定它會去哪裏?

到目前爲止,我有:

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

回答

3

看起來你是一個有點新的剃鬚刀。 This answer有一些很好的資源列表可以幫助你開始學習Umbraco的剃刀語法。

針對您的問題,我不確定我是否明白您要完成的工作。從我所看到的,你想要添加一個樣式表到一個基於它的名字或其祖先的名字的頁面。我建議,這可能不是最好的選擇,關鍵的名字;更穩定的解決方案是使用節點的ID。但是,這裏有一個代碼示例,應該有希望幫助:

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

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

上面的代碼中獲取節點的祖先(包括自身)和節點(「藍」)的名稱過濾它們。然後它檢查集合中是否有節點。如果存在,那麼當前節點是「藍色」或者它有一個名爲「藍色」的祖先,因此樣式被應用。

+0

感謝您的幫助x –