Question

Je sais que je l'ai fait paraître avant, mais je ne peux pas se rappeler où ni comment.

Je veux créer un lien vers un élément en Sitecore. Ce code:

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return itm.Paths.Path.ToString();

Correspond à la chaîne suivante:

http://localhost/sitecore/content/Home/Item1/Item11/thisItem

Je voudrais avoir cette chaîne à la place:

http://localhost/Item1/Item11/thisItem.aspx

Quelle est la bonne façon d'obtenir le chemin de l'élément? Dans ce cas, je ne peux pas utiliser un lien Sitecore normal:

Sitecore.Web.UI.WebControls.Link
Était-ce utile?

La solution

Vous êtes besoin celui-ci, en supposant que vous utilisez Sitecore v6 ou quoi que ce soit plus récent (testé avec 8.2-6, devrait fonctionner avec 9 aussi):

Sitecore.Links.LinkManager.GetItemUrl(item);

Autres conseils

Si vous utilisez toujours Sitecore 5.3, vous pouvez utiliser. Soyez averti cette méthode est dépréciée dans Sitecore 6.0.

string url = item.Paths.GetFriendlyUrl();

Votre contrôle Web:

<asp:HyperLink ID="HyperLinkItem" runat="server">
    Item
</asp:HyperLink>

Votre code:

var homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
HyperLinkItem.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(homeItem);

Vous pouvez rendre lien de l'article comme suit:

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return Sitecore.Links.LinkManager.GetItemUrl(itm);

Essayer cette

  <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);

Vous pouvez le faire par cela aussi:

Item.Paths.FullPath

Il est le même que:

Sitecore.Links.LinkManager.GetItemUrl(item);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top