2012-03-28 12 views
0

Wir PageTypeBuilder verwenden unsere Pagetypes zu definieren, auf der einen Seite stellen wir eine Eigenschaft haben, die als einen Link unten Artikel-Sammlung darstellt:EPiServer LinkItemCollection für Benutzer nicht sichtbar

[PageTypeProperty(Type = typeof(PropertyLinkCollection), HelpText = "Test links.", EditCaption = "Test links", SortOrder = 11)] 
     public virtual LinkItemCollection PageLinks { get; set; } 

Wir können diese bevölkern im CMS-Editor-Modus mit verlinkt, speichert und veröffentlicht ohne Fehler. Wir haben dann eine Benutzersteuerung, die von EPiServer.UserControlBase erbt und packt die LinkItemCollection Eigenschaft den folgenden Code und bindet es an einen Repeater:

var links = currentPage.Property["PageLinks"].Value as LinkItemCollection; 
if (links != null) 
{ 
    linkRepeater.DataSource = links; 
    linkRepeater.DataBind(); 
} 

Wenn ich die Seite, wenn sie als CMS-Editor funktioniert diese Seite angemeldet Fein und der Parameter Links ist korrekt ausgefüllt, aber wenn ich die Seite als normaler Benutzer anzeigen und nicht in der Links-Variable eingeloggt ist, ist die Variable immer null (obwohl ich beim Debuggen kann ich die currentPage.Property ["PageLinks"] vorhanden ist , und der Typ ist LinkCollection, es ist nur, dass der Wert Null ist

Gibt es etwas, das ich hier konfigurieren muss, Berechtigungen für einen bestimmten Seitentyp?

+0

Was passiert, wenn Sie einfach ein in Ihr Benutzersteuerelement oder Ihre Vorlage einfügen? Wird eine Liste von Links angezeigt? –

Antwort

1

Das Problem ist höchstwahrscheinlich, dass eine der Seiten in der LinkItemCollection für externe Besucher nicht zugänglich ist. Versuchen Sie, als externer Besucher auf die Links in der Sammlung zuzugreifen, und entfernen Sie alle Links, die tatsächlich von der externen Ansicht aus gesperrt sind.

Verwandte Themen