2009-03-23 16 views
22

Sé que he hecho esto antes, pero no puedo recordar dónde o cómo.Crear un enlace al artículo de Sitecore

Quiero crear un enlace a un elemento en 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 a la ¿ít? En este caso no puedo utilizar un enlace normal Sitecore:

Sitecore.Web.UI.WebControls.Link 

Respuesta

35

Usted está necesitando éste, asumiendo que se está ejecutando Sitecore v6.

Sitecore.Links.LinkManager.GetItemUrl(item); 
4

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

string url = item.Paths.GetFriendlyUrl(); 
-6

Se puede hacer por esto también:

Item.Paths.FullPath 

Es igual a:

Sitecore.Links.LinkManager.GetItemUrl(item); 
+1

No, no es la misma en todos. FullPath devuelve la ruta del elemento, GetItemUrl() usa LinkProvider para crear una URL amigable. –

1

Su Web Control:

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

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

probar este

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