2012-03-30 3 views
0

Umbraco 4.7.1でXSLTからC#関数を呼び出しています。 私の関数は現在のノードの "tag"プロパティの値を返しています。問題は私の出力がエンコードされています。UmbracoがC#をXSLTで呼び出し、fXML出力をデコードする

xsltExtensions.configにアセンブリ拡張を追加しました。私のXSLTで

私は私の関数の値を取得してい

<xsl:value-of select="TagHelpers:ShowAllTags()" /> 

私のC#の機能:

public string ShowAllTags() 
     { 
      var node = new DynamicNode(Node.GetCurrent()); 
      var html = new StringBuilder(); 

     if (node.HasProperty("tags")) 
     { 
      var tagList = node.GetPropertyValue("tags"); 
      if(tagList.Length > 0) 
      { 
       foreach (var tag in tagList) 
       { 
        html.Append(HttpUtility.HtmlEncode(tag)); 
       } 
      } 
     } 

     return html.ToString(); 

私の出力は次のようになります。

%図3c%3fxml +バージョン%3d%221.0%22%3f%3e%0d%0a%3cClientValue + xmlns%3axsd%3d%22http%3a%2f%2fwww.w3.org%2f2001%2fXMLSchema%22 + xmlns%3axsi%3d%22http% 3a%2f%2fwww.w3.org%2f2001%2fXMLSchema-instance %22%3e%0d%0a ++%3cTags%3e%0d%0a ++++%3cstring%3efritidsjob%3c%2fstring%3e%0d%0a ++++%3cstring%3elo%3c%2fstring%3e%0d%0a ++++%3cstring%3ejobpatrulje%3c %2fstring%3E%0D%0A ++%3C%2fTags%3E%0D%0A ++%3cGroupName%3edefault%3C%2fGroupName%3E%0D%0A%3C%2fClientValue%3E

しかし、次のようになります。

あなたが選ぶあなたのXSLTに無効にする出力エンコード= "YES" を追加することにより、エンコーディングを取り除くことができ

fritidsjob、jobpatrulje、LO

答えて

0

、例えば<xsl:value-of select="TagHelpers:ShowAllTags()" disable-output-encoding="yes" />

ただし、コンマ区切りの文字列ではなく、XMLとして保存されているようです。どのタグコントロールを使用していますか?

関連する問題