1

我们正在使用 Sitecore 7 和 MVC + Glass.mapper 构建一个新站点。

奇怪的是,当我们使用@Editable(x => x.SectionTitle)时,在编辑模式下,SectionTitle字段的内容会得到HtmlEncoded,而不是在预览或普通模式下。(所以如果标题字段中有“”,则输出为&lt;H1&gt;编辑模式,但<H1>正常和预览)

但是,如果我们使用 @HTML.Sitecore().Field("SectionTitle")它,它总是会得到 HtmlEncoded,这就是我们在使用单行文本字段时要寻找的行为......

这是玻璃故障吗?


迈克,这是 cshtml 代码:

<section>
    <H2> @Html.Sitecore().Field("SectieTitel")</H2>
    <h2>@Editable(x => x.SectieTitel)</h2>
    @Html.Sitecore().DynamicPlaceholder("sectieInhoud")
</section>

我们使用 T4 和 TDS 生成模型,这是生成的 Sectie 类:

namespace XXXXXXXXXXXXX
{

    public interface ISectie : IGlassItem // , ITagging
    {
            /// <summary>
        /// The SectieTitel field.
        /// <para></para>
        /// <para>Field Type: Single-Line Text</para>       
        /// <para>Field ID: 2e364ec5-f0d4-4f16-baa3-fa9207f89cf6</para>
        /// <para>Custom Data: </para>
        /// </summary>
        string SectieTitel  {get; set;}

        }



    [SitecoreType(TemplateId="1760c3c6-a623-404a-98be-a0d4335a03cc")]
    public partial class Sectie  : GlassItem, ISectie 
    {
                private string _sectieTitel;

        /// <summary>
        /// The SectieTitel field.
        /// <para></para>
        /// <para>Field Type: Single-Line Text</para>       
        /// <para>Field ID: 2e364ec5-f0d4-4f16-baa3-fa9207f89cf6</para>
        /// <para>Custom Data: </para>
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Team Development for Sitecore - GlassItem.tt", "1.0")]
        [SitecoreField("SectieTitel")]
        public virtual string SectieTitel  
        {
            get { return _sectieTitel; } 
            set { _sectieTitel = value; }
        }

            private object /* UNKNOWN */ _tags;

        /// <summary>
        /// The Tags field.
        /// <para></para>
        /// <para>Field Type: Multilist with Search</para>      
        /// <para>Field ID: 3a837ce8-7a1b-4cbf-8be9-9cebbdf1c48a</para>
        /// <para>Custom Data: </para>
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Team Development for Sitecore - GlassItem.tt", "1.0")]
        [SitecoreField("Tags")]
        public virtual object /* UNKNOWN */ Tags  
        {
            get { return _tags; } 
            set { _tags = value; }
        }


        public static string TemplateId { get { return "1760c3c6-a623-404a-98be-a0d4335a03cc"; } }
    }

}

在 cshtml 中,您可以看到我使用了 Sitecore MVC 字段和玻璃方式。Glass 不输出 htmlencoded 字符串,而 sitecore MVC 在预览和正常情况下...

欧文

4

1 回答 1

1

我发表了一篇博文,详细介绍了如何解决这个问题。

我将在下一个 Glass.Mapper.Sc 版本中添加 EncodedString 类型。谢谢你的建议。

于 2013-11-20T02:45:54.567 回答