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
È stato utile?

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top