2010-12-07 40 views
5

有時Sitecore不會返回某些項目。例如,下面的代碼:Sitecore中的項目爲空6

Sitecore.Data.ID itemId = new Sitecore.Data.ID(id); 
Sitecore.Context.Database.GetItem(id); 

這將返回null,但是如果相同的字符串ID被放置在內容編輯器中的內容樹上面的搜索,它會返回的項目!上下文數據庫是web,我已經多次重新發布該項目。

我正在使用Sitecore 6.2.0(rev。100701)。

+0

我把問題推回去了,因爲它已經更新以反映答案 - 所以不再有意義。 – 2011-09-29 14:13:49

回答

5

你確定這不是一個錯字嗎?我的意思是,你不應該通過itemId而不是隻有idGetItem

我不記得它是如何工作的,但是如果你傳遞一個字符串給這個方法,它可能把它當作路徑而不是ID,並且試圖通過路徑來解決這個項目。您可以檢查這個速度遠遠超過我做:

Sitecore.Data.ID itemId = new Sitecore.Data.ID(id); 
Sitecore.Context.Database.GetItem(itemId); 
+0

是的,我很確定,對不起,我的錯誤,因爲匆忙複製粘貼,即時通訊使用一些實用功能:public static Sitecore.Data.Items.Item GetItemById(Sitecore.Data.ID id) { return Sitecore.Context.Database.GetItem ID); } – lurscher 2010-12-07 17:33:59

5

我有同樣的問題 - GetItem()函數返回NULL

拉我的頭髮了大約一個小時後,我發現我的GetItem()函數的調用前端和extranet/Anonymous用戶對我試圖獲取的項目沒有讀取權限。

因此,請記住檢查安全!