2015-09-27 49 views
0

我的內容按以下方式構建。在複雜結構中查找文檔類型Umbraco 7

    • 網站甲
      • 首頁
        • 頁2
        • 頁中否
    • 網站B
      • 首頁
    • c網站
      • 首頁

每個Home DOCUME nt類型連接到主佈局模板。 在我的主佈局中,我嘗試通過編寫此代碼來找到Home節點。

var home = Model.Content.Siblings().FirstOrDefault(x => x.DocumentTypeAlias == "Home"); 

這適用於即時在Home節點,但當我去前。 Page 1我得到一個例外,因爲Home不是Page 1的兄弟姐妹。

然後我試了一下。

var home= Umbraco.TypedContentAtXPath("//Home").FirstOrDefault(); 

這個工作,當我在Website A,因爲它返回第一個節點。 但是,當在Website B我仍然有Website A節點,這是錯誤的。

有關如何解決這個問題的任何提示?

回答

0

我找到了解決的辦法:

var home = Model.Content.AncestorOrSelf(2).Children().FirstOrDefault(x => x.DocumentTypeAlias == "Home"); 
4

幾種不同的方式來實現這一點,但以下是最簡潔:

var home = Model.Content.AncestorsOrSelf("Home").FirstOrDefault();