Вызов Umbraco C # в XSLT, декодирование вывода fXML - PullRequest
0 голосов
/ 30 марта 2012

Я вызываю функцию C # из XSLT в Umbraco 4.7.1. Моя функция возвращает значение свойства "tag" на текущем узле, проблема в том, что мой вывод закодирован.

В 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 инстанции% 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

Но должно быть:

fritidsjob, jobpatrulje, lo

1 Ответ

0 голосов
/ 02 апреля 2012

Вы можете избавиться от кодировки, добавив disable-output-encoding = "yes" в ваш xslt select, например, <xsl:value-of select="TagHelpers:ShowAllTags()" disable-output-encoding="yes" />

Однако похоже, что ваши теги хранятся в виде XML, а не через запятую. Какой элемент управления тегами вы используете?

...