首页 > 解决方案 > 如何使用 xsl 值选择器输出原始 html?

问题描述

我正在修改一个 xsl 文档,我需要添加一大块在 C# 中动态生成的 html。我认为最简单的方法是让我的函数返回一个原始 HTML 字符串并在 xsl 中显示它,但它显示为纯文本而不是 HTML:

<xsl:value-of select="bcs:GetProvinceHtml()"/>

    public string GetProvinceHtml()
    {
        var provinces = GetProvinces();
        bool french = Sitecore.Context.Language == Language.DefaultLanguage;
        var html = "<ul>";
        foreach (var prov in provinces)
        {
            var url = "";
            if (string.IsNullOrEmpty(HttpContext.Current.Request.Url.Query))
            {
                url = string.Format("{1}?province={0}&lang={2}",
                    prov.Code.ToLower(), HttpContext.Current.Request.Url, french ? "fr-CA" : "en-CA");
            }
            else
            {
                var nameValues = HttpUtility.ParseQueryString(HttpContext.Current.Request.QueryString.ToString());

                if (nameValues["province"] != null)
                {
                    nameValues.Set("province", prov.Code.ToLower());
                }
                else
                {
                    nameValues.Add("province", prov.Code.ToLower());
                }

                if (nameValues["lang"] == null)
                {
                    nameValues.Add("lang", french ? "fr-CA" : "en-CA");
                }

                url = HttpContext.Current.Request.Url.AbsolutePath;
                url = url + "?" + nameValues;
            }

            html += String.Format("<li><a href='{0}'>{1}</a></li>", url,
                !french ? prov.Name : prov.FrenchName);
        }

        html += "</ul>";

        return html;
    }

如何将我的 HTML 字符串输出为 HTML 而不是纯文本?

标签: htmlxmlxslttext

解决方案


推荐阅读