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
Was it helpful?

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
scroll top