Link erstellen zu Sitecores Artikel
Frage
Ich weiß, dass ich das schon getan haben, aber ich kann nicht zu erinnern scheinen, wo oder wie.
Ich möchte einen Link zu einem Artikel in Sitecores erstellen. Dieser Code:
Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return itm.Paths.Path.ToString();
Erzeugt die folgende Zeichenfolge:
http://localhost/sitecore/content/Home/Item1/Item11/thisItem
Ich möchte diese Zeichenfolge haben statt:
http://localhost/Item1/Item11/thisItem.aspx
Was ist der richtige Weg, um den Pfad zu dem Element zu bekommen? In diesem Fall kann ich keine normale Sitecores Link:
Sitecore.Web.UI.WebControls.Link
Lösung
Sie benötigen diese, vorausgesetzt, Sie laufen Sitecore v6 oder etwas jüngeren (getestet mit 8,2-6, sollte auch mit 9 arbeiten):
Sitecore.Links.LinkManager.GetItemUrl(item);
Andere Tipps
Wenn Sie noch mit Sitecore 5.3, können Sie diese verwenden. Wird diese Methode gewarnt wird, in Sitecore 6.0 veraltet.
string url = item.Paths.GetFriendlyUrl();
Ihre Web Control:
<asp:HyperLink ID="HyperLinkItem" runat="server">
Item
</asp:HyperLink>
Ihr Code:
var homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
HyperLinkItem.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(homeItem);
Sie können Element-Link übertragen, wie unten:
Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return Sitecore.Links.LinkManager.GetItemUrl(itm);
Versuchen Sie, diese
<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);
Sie können dies tun, auch:
Item.Paths.FullPath
Es ist das gleiche wie:
Sitecore.Links.LinkManager.GetItemUrl(item);