@Editable没有HtmlEncode

时间:2013-11-19 09:28:12

标签: asp.net-mvc sitecore sitecore7 glass-mapper

我们正在使用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在预览和正常情况下...

欧文

1 个答案:

答案 0 :(得分:2)

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

http://www.glass.lu/Blog/EncodedStrings

我将把EncodedString类型添加到下一个Glass.Mapper.Sc版本中,感谢您的建议。