2009-03-23 9 views
22

Je sais que j'ai déjà fait cela mais je n'arrive pas à me rappeler où et comment. Je souhaite créer un lien vers un élément dans Sitecore. Ce code:Créer un lien vers Sitecore Article

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 du article? Dans ce cas, je ne peux pas utiliser un lien Sitecore normal:

Sitecore.Web.UI.WebControls.Link 

Répondre

35

tu as besoin celui-ci, en supposant que vous utilisez Sitecore v6.

Sitecore.Links.LinkManager.GetItemUrl(item); 
4

Si vous utilisez toujours Sitecore 5.3, vous pouvez l'utiliser. Soyez averti que cette méthode est obsolète dans Sitecore 6.0.

string url = item.Paths.GetFriendlyUrl(); 
-6

Vous pouvez le faire par cela aussi:

Item.Paths.FullPath 

Il est le même que:

Sitecore.Links.LinkManager.GetItemUrl(item); 
+1

Non, ce n'est pas tout la même chose. FullPath renvoie le chemin de l'élément, GetItemUrl() utilise LinkProvider pour créer une URL conviviale. –

1

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

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

Essayez 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); 
Questions connexes