2010-12-07 9 views
5

Manchmal gibt Sitecore bestimmte Elemente nicht zurück. Zum Beispiel in dem folgenden Code:Elemente sind in Sitecore 6 null

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

Dies wird null zurück, aber wenn der gleiche Zeichenfolge-ID auf der Suche über dem Inhalt Baum im Content-Editor platziert wird, wird es das Einzelteil zurück! Die Kontextdatenbank ist web und ich habe den Artikel mehrmals neu veröffentlicht.

Ich verwende Sitecore 6.2.0 (rev. 100701).

+0

Ich rollte die Frage zurück, da sie aktualisiert worden war, um die Antwort zu reflektieren - also keinen Sinn mehr. –

Antwort

5

Sind Sie sicher, dass es sich nicht um einen Tippfehler handelt? Ich meine, sollten Sie nicht itemId statt nur id zu GetItem übergeben?

Ich erinnere mich nicht genau, wie es funktioniert, aber wenn Sie eine Zeichenfolge an diese Methode übergeben, behandelt es wahrscheinlich es als Pfad, nicht ID, und versucht, das Element nach Pfad aufzulösen. Sie können diese viel schneller überprüfen als ich:

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

yeah ich bin sicher, sorry mein Fehler wegen stürzte kopieren einfügen, ich benutze einige Dienstprogramm-Funktion: öffentliche statische Sitecore.Data.Items.Item GetItemById (Sitecore.Data.ID ID) { zurück Sitecore.Context.Database.GetItem (Ich würde); } – lurscher

+0

Wahrscheinlich ist der Artikel immer noch nicht in der Web-Datenbank? Es hat vielleicht Einschränkungen veröffentlicht oder Workflow nicht bestanden ... Versuchen Sie einfach "Wählen Sie * aus Elemente wo ID = 'IHR-GUID-HIER'" gegen Web-DB, um sicherzustellen, –

+1

ok, ich fand heraus, was die Ursache ... es ist scheint, dass Sitecore nicht gefällt, wenn der Kontext SiteCore-Benutzer Extranet/anonym ist. Ich logge mich als normaler Benutzer ein und es funktioniert ... – lurscher

5

ich gerade das gleiche Problem hatte - GetItem() Funktion gibt NULL

Nach mir die Haare für etwa eine Stunde ziehen, fand ich, dass meine GetItem() Funktion aufgerufen wird Das Frontend und der Benutzer extranet/Anonymous haben keinen Lesezugriff auf das Objekt, das ich zu bekommen versuche.

Also, denken Sie daran, die Sicherheit zu überprüfen!