2010-11-22 4 views

Antwort

4

ich zumindest kann man sagen, wie dies in einer .NET sublayout geschehen ist, nicht sicher, ob das hilft:

Sitecore.Links.UrlOptions urlOptions = new Sitecore.Links.UrlOptions(); 
urlOptions.AlwaysIncludeServerUrl = true; 
string url = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item, urlOptions); 

andere Stellen Optionen auf URLOptions wie angemessen.

Glückliche Kodierung.

4

Ich weiß, das ist eine alte Frage, aber die gegebene Antwort ist wirklich nicht das vollständige Bild. Sie können eine XSLT-Erweiterung bauen zu handhaben:

public class XslExtensions : Sc.Xml.Xsl.XslHelper 
{ 
    public string GetUrl(XPathNodeIterator iterator) 
    { 
     Sc.Data.Items.Item item = this.GetRequiredItem(iterator); 
     return item.GetUrl(); // Extension method for Item that returns the URL as a string 
    } 

    public Sc.Data.Items.Item GetRequiredItem(XPathNodeIterator iterator) 
    { 
     Sc.Diagnostics.Assert.IsNotNull(iterator, "iterator"); 

     if (!iterator.MoveNext()) 
     { 
      XsltException ex = new XsltException("No iterator."); 
      Sc.Diagnostics.Log.Error(ex.Message, ex, this); 
      throw ex; 
     } 

     Sc.Data.Items.Item item = this.GetItem(iterator); 

     if (item == null) 
     { 
      XsltException ex = new XsltException("No item."); 
      Sc.Diagnostics.Log.Error(ex.Message, ex, this); 
      throw ex; 
     } 

     return item; 
    } 
} 

Dann müssen Sie die Klasse hinzufügen, die oben auf dem <xslExtensions> Knoten gilt:

<extension mode="on" type="MyProject.XslExtensions, MyProject" namespace="http://myproject.com/extensions" singleInstance="true" /> 

Und schließlich können Sie die Methode verwenden. Erste Referenz die Erweiterungen ...

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:sc="http://www.sitecore.net/sc" 
    xmlns:sql="http://www.sitecore.net/sql" 
    xmlns:myp="http://myproject.com/extensions" 
    exclude-result-prefixes="sc sql myp"> 

Dann verwenden!

<xsl:value-of select="myp:GetUrl(.)" />