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
War es hilfreich?

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top