2013-09-06 4 views
6

Ho bisogno di associare il LinkURL della pagina Blog con un pulsante di collegamento nella pagina iniziale. Quello che ho fatto è stato in realtà trovato quell'ID della pagina e ottenere un riferimento alla pagina che lo utilizza.EpiServer come ottenere l'URL di collegamento di una pagina specifica?

PageReference BlogPageReference = new PageReference(21); 

PageData BlogPage = GetPage(BlogPageReference); 

var url = BlogPage.LinkURL; 

Questo è piuttosto semplice, ma io non sono felice che l'ID pagina è difficile codificato. C'è un modo migliore per farlo, come ottenere il nome di Pagina per pagina? o in altro modo?

Grazie in anticipo :)

+0

Penso che la risposta di Andreas debba essere accettata. :) –

risposta

9

vorrei creare una proprietà sulla pagina iniziale di tipo "Pagina", il che significa che la proprietà avrà il tipo PageReference. Quindi non è più codificato.

È anche comune spostare tali proprietà "impostazioni" in un tipo di pagina Impostazioni separato che è esso stesso collegato tramite una proprietà dalla radice o dalla pagina iniziale (che sono costanti).

Im scrivendo dalla memoria scusate quindi qualsiasi errore nel codice.

var startPage = DataFactory.Instance.Get<StartPage>(PageReference.StartPage); 
var settingsPage = DataFactory.Instance.Get<SettingsPage>(startPage.SettingsPage); 
var blogPageRef = settingsPage.BlogPage; 

Dove SettingsPage e BlogPage sono definiti

public virtual PageReference xxxPage {get; set; } 

nella classe tipo di pagina.