有時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)。
有時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)。
你確定這不是一個錯字嗎?我的意思是,你不應該通過itemId
而不是隻有id
到GetItem
?
我不記得它是如何工作的,但是如果你傳遞一個字符串給這個方法,它可能把它當作路徑而不是ID,並且試圖通過路徑來解決這個項目。您可以檢查這個速度遠遠超過我做:
Sitecore.Data.ID itemId = new Sitecore.Data.ID(id);
Sitecore.Context.Database.GetItem(itemId);
是的,我很確定,對不起,我的錯誤,因爲匆忙複製粘貼,即時通訊使用一些實用功能:public static Sitecore.Data.Items.Item GetItemById(Sitecore.Data.ID id) { return Sitecore.Context.Database.GetItem ID); } – lurscher 2010-12-07 17:33:59
我有同樣的問題 - GetItem()
函數返回NULL
拉我的頭髮了大約一個小時後,我發現我的GetItem()
函數的調用前端和extranet/Anonymous
用戶對我試圖獲取的項目沒有讀取權限。
因此,請記住檢查安全!
請參閱以下文章。 http://sdn.sitecore.net/Articles/API/Context%20and%20databases.aspx
on web.config站點名稱=「網站」節點可能指向錯誤的數據庫。數據庫屬性應該是「主」或「網絡」。
我把問題推回去了,因爲它已經更新以反映答案 - 所以不再有意義。 – 2011-09-29 14:13:49