Pregunta

Sé que he hecho esto antes, pero me parece que no puede recordar dónde ni cómo.

Quiero crear un vínculo a un elemento de Sitecore. Este código:

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return itm.Paths.Path.ToString();

Produce la siguiente cadena:

http://localhost/sitecore/content/Home/Item1/Item11/thisItem

Me gustaría tener esta cadena en su lugar:

http://localhost/Item1/Item11/thisItem.aspx

¿Cuál es la forma correcta para obtener la ruta del elemento? En este caso no puedo utilizar un enlace normal de Sitecore:

Sitecore.Web.UI.WebControls.Link
¿Fue útil?

Solución

Esta necesidad de éste, asumiendo que se está ejecutando v6 Sitecore o algo más reciente (probado con 8.2-6, se debe trabajar con 9 también):

Sitecore.Links.LinkManager.GetItemUrl(item);

Otros consejos

Si usted todavía está utilizando Sitecore 5.3, puede utilizar esto. Adviértase que este método está en desuso en Sitecore 6.0.

string url = item.Paths.GetFriendlyUrl();

Su control Web:

<asp:HyperLink ID="HyperLinkItem" runat="server">
    Item
</asp:HyperLink>

Su Código:

var homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
HyperLinkItem.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(homeItem);

Puede rendir enlace de elemento de la siguiente manera:

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return Sitecore.Links.LinkManager.GetItemUrl(itm);

Probar

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

Se puede hacer por esto también:

Item.Paths.FullPath

Es mismo que:

Sitecore.Links.LinkManager.GetItemUrl(item);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top