2017-08-15 91 views
0

當嘗試在自定義頁面類型TreeNode上使用GetStringValue()檢索DocumentPageTitleDocumentPageDescription時,結果總是會返回爲傳遞給方法的默認值(在此例中爲空字符串) 。Kentico文檔獲取頁面元數據自定義頁面類型

我能夠成功檢索其他列值以及標準文檔屬性,如DocumentName,DocumentIDAbsoluteURL,但不是文檔元屬性。

在文件/頁面選項卡中的各個領域確實有值,並正在默認情況下,如<meta name="description" content=".." />

// returns empty string 
string documentPageDescription = DocumentContext.CurrentDocument.GetString("DocumentPageDescription", string.Empty); 

// returns empty string 
TreeNode document = parameters[0] as TreeNode; 
string documentPageDescription = document.GetStringValue("DocumentPageDescription", string.Empty); 

我試過設置從頁面選項繼承領域的渲染成功鍵入到「頁面(菜單項)」,但沒有幫助。

自定義頁面類型是否需要從某個特定對象繼承,或者是否已激活特定設置才能訪問這些值?或者如果我認爲是TreeNode實際上不是,我怎麼能從這個對象具有以前列出的屬性可用的TreeNode?

感謝您提供任何幫助。

回答

0

DocumentPageTitleDocumentPageDescription都回來爲空時,自定義頁面類型文件/頁面從父/全局值繼承。

我能夠使用以下時繼承,而回落至父值繼承正在發生時獲得的屬性:

string documentPageTitle = document.GetStringValue("DocumentPageTitle", DocumentContext.CurrentTitle); 

這種方法來自於以下問題上Kentico DevNet

謝謝你的幫助和建議,很感激。

1
ValidationHelper.GetString(CMS.DocumentEngine.DocumentContext.CurrentDocument.GetValue("DocumentPageDescription"), string.Empty) 
+1

請不要在這裏發佈代碼。試着解釋爲什麼這能解決問題。 – loki

0

有兩件事要檢查,一個,你確定元數據可以在你正在拉的網頁上?二,你的API實際上是拉該頁面的所有數據嗎?

我在測試中使用過這些數據,並且都返回了元數據。

var page = DocumentHelper.GetDocuments().Path("/Articles/Coffee-Beverages-Explained").FirstObject; 
Response.Write(page.GetStringValue("DocumentPageDescription", string.Empty)); 

TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); 
TreeNode tn = tree.SelectNodes().OnCurrentSite().Path("/Articles/Coffee-Beverages-Explained").FirstObject; 
Response.Write(tn.GetStringValue("DocumentPageDescription", string.Empty)); 
+0

謝謝你的建議。我認爲我的問題是關於[下面](https://devnet.kentico.com/questions/getting-the-metadata-of-a-page-via-expression)。如果自定義頁面類型頁面設置爲從父類繼承,則結果會返回爲空。我可以通過「DocumentContext.CurrentTitle」和「DocumentContext.CurrentDescription」獲得繼承情況下的父元數據值。當不繼承時,通過'TreeNode'對象上的'GetStringValue()'獲取值可以正常工作。謝謝! –

+0

我看到了,因爲從父項繼承時,該項目的描述列中沒有存儲實際數據,因此GetValue或GetStringVlaue將爲空。 – Rui

相關問題