Creare link per Sitecore Articolo
Domanda
So che ho fatto prima, ma non riesco a ricordare dove e come.
Voglio creare un collegamento a un elemento in Sitecore. Questo codice:
Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return itm.Paths.Path.ToString();
Produce la seguente stringa:
http://localhost/sitecore/content/Home/Item1/Item11/thisItem
Mi piacerebbe avere questa stringa invece:
http://localhost/Item1/Item11/thisItem.aspx
Qual è il modo corretto per ottenere il percorso alla voce? In questo caso non è possibile utilizzare un normale collegamento Sitecore:
Sitecore.Web.UI.WebControls.Link
Soluzione
Stai bisogno di questo, supponendo che si sta eseguendo Sitecore V6 o qualcosa di più recente (testato con 8,2-6, dovrebbe funzionare con 9 troppo):
Sitecore.Links.LinkManager.GetItemUrl(item);
Altri suggerimenti
Se si sta ancora utilizzando Sitecore 5.3, è possibile utilizzare questo. Essere avvertito questo metodo è deprecato in Sitecore 6.0.
string url = item.Paths.GetFriendlyUrl();
Il Web Control:
<asp:HyperLink ID="HyperLinkItem" runat="server">
Item
</asp:HyperLink>
Il tuo codice:
var homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
HyperLinkItem.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(homeItem);
È possibile eseguire il rendering link in oggetto, come di seguito:
Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return Sitecore.Links.LinkManager.GetItemUrl(itm);
Prova questo
<asp:HyperLink ID="hlItem" runat="server">
</asp:HyperLink>
aspx.cs
Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
hlItem.Navigateurl =sitecore.links.linkmanager.getitemurl(itm);
È possibile farlo da questa anche:
Item.Paths.FullPath
E 'uguale a:
Sitecore.Links.LinkManager.GetItemUrl(item);