2015-12-29 28 views
5

有沒有一種方法可以根據代碼背後的呈現值獲取項目的呈現html?在最近的一個項目中,我們需要完成這項工作,目前我們正在用另一個看起來很浪費的請求來挖掘我們自己的網站。Sitecore獲取Rendered Html

+0

您可以使用Item Web API,但不會考慮渲染參數,並且必須提供數據源的項目標識。我會認爲,這不是你在之後。第15頁:https://sdn.sitecore.net/upload/sdn5/modules/sitecore%2520item%2520web%2520api/sitecore_item_web_api_developer_guide_sc65-66-usletter.pdf – jammykam

回答

3

不幸的是,我不認爲有一個乾淨的方式來實現這一點。一個用戶控件很大程度上依賴於頁面生命週期的運行,因此是一個HTTP請求。您還經常依賴於在請求過程中建立的Sitecore上下文的各個部分。

使用MVC,您有更多的選擇,因爲您可以直接調用Render方法。但是你仍然必須首先正確地建立模型。所以你可能仍然有困難。

正如你所說,它似乎是浪費,但屏幕抓取是實現它的通常方式。我知道一些現有的模塊使用這種方法來索引頁面內容。

+0

感謝您的反饋。由於上面提到的原因,看起來我會單獨留下當前的方法。 – Teeknow

1

我平時打開一個網頁請求,並獲取該項目。如果我只需要一個特定的佔位符,我通過像?mode=placeholder-name這樣的東西來限制對它的訪問。

這對搜尋網站並希望在搜索索引中緩存HTML時特別有用。

0

你的意思是在體驗編輯器中?嘗試爲體驗編輯器中開發的搜索索引頁面時,我們遇到了同樣的問題。我們所做的是向頁面做HttpRequest,檢索html,刪除所有標籤並將內容編入索引爲_content。當我們然後想要做關鍵詞搜索時,我們然後匹配_content。希望這可以幫助。 Charlie

+0

他已經向頁面發出請求並正在尋找替代方法。 (「我們目前正在用另一個請求來刮我們自己的網站」) –

+1

錯過了那個抱歉。我試圖想到同樣的事情,但找不到一個:( –

+1

沒問題,這個問題的變化經常出現在Stack Overflow上,如果Sitecore能夠提出一個解決方案,那就太好了。 –