Create link to Sitecore Item
Question
I know I have done this before but I can't seem to remember where or how.
I want to create a link to an Item in Sitecore. This code:
Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return itm.Paths.Path.ToString();
Produces the following string:
http://localhost/sitecore/content/Home/Item1/Item11/thisItem
I would like to have this string instead:
http://localhost/Item1/Item11/thisItem.aspx
What is the correct way to get the path to the item? In this case I can't use a normal Sitecore link:
Sitecore.Web.UI.WebControls.Link
Solution
You're needing this one, assuming you're running Sitecore v6 or anything more recent (tested with 8.2-6, should work with 9 too):
Sitecore.Links.LinkManager.GetItemUrl(item);
OTHER TIPS
If you are still using Sitecore 5.3, you can use this. Be warned this method is deprecated in Sitecore 6.0.
string url = item.Paths.GetFriendlyUrl();
Your Web Control:
<asp:HyperLink ID="HyperLinkItem" runat="server">
Item
</asp:HyperLink>
Your Code:
var homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
HyperLinkItem.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(homeItem);
You can render item link as below:
Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return Sitecore.Links.LinkManager.GetItemUrl(itm);
Try this
<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);
You can do by this also:
Item.Paths.FullPath
It is same as:
Sitecore.Links.LinkManager.GetItemUrl(item);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow