【问题标题】:How do you put custom markup in a sitecore sc field?如何在 sitecore sc 字段中放置自定义标记?
【发布时间】:2013-05-04 16:56:21
【问题描述】:

我需要为 sc:Image 字段添加一些自定义标记以增强 SEO。这个标记不是该字段的属性,所以从代码隐藏中,我尝试了这样的事情:

slideImage.Attributes.Add("ControlType", "C4Image");
slideImage.Attributes.Add("rel", relString);

但这不起作用,我在渲染的输出中看不到任何东西。有没有办法做到这一点?

【问题讨论】:

    标签: c# asp.net content-management-system sitecore sitecore6


    【解决方案1】:

    您需要使用“参数”属性在 和 控件上设置额外的属性。

    你可以这样:

    <sc:FieldRenderer ID="PageImage" runat="server" FieldName="ContentImage" Parameters="ControlType=C4Image&rel=relString" />
    <sc:Image ID="SCPageImage" runat="server" Field="ContentImage" Parameters="ControlType=C4Image&rel=relString" />
    

    这将呈现如下:

    <img width="1232" height="637" controltype="C4Image" rel="relString" alt="" src="~/media/Images/DEMO backgrounds/background2.ashx">
    

    【讨论】:

    • 在 Sitecore 中做一件事的方法太多了 :)
    • 但是,我以为你想通过 C# 设置属性?在这里你是静态设置的。
    • 是的 - 但你也可以从 c# 中通过设置 .Parameters 属性来做到这一点 - PageImage.Parameters = "blah:
    【解决方案2】:

    您可以创建自己的继承自 Sitecore.Web.UI.WebControls.Image 的类并像这样覆盖它:

    namespace My.Assembly.Namespace
    {
        public class MyImage : Sitecore.Web.UI.WebControls.Image
        {
            public virtual string RelAttribute { get; set; }
    
            protected override void PopulateParameters(Sitecore.Collections.SafeDictionary<string> parameters)
            {
                base.PopulateParameters(parameters);
                if (!String.IsNullOrEmpty(RelAttribute))
                {
                    parameters.Add("rel", RelAttribute);
                }
            }
        }
    }
    

    然后注册命名空间并使用MyImage类:

    <%@ Register tagPrefix="my" namespace="My.Assembly.Namespace" assembly="My.Assembly" %>
    
    <my:MyImage runat="server" RelAttribute="reltest" Field="logo"/>
    

    您也可以在my:MyImage 上使用来自sc:Image 的所有标准属性。 该代码将生成img 标记与rel &lt;img rel="reltest" src="logo.jpg" ... /&gt;

    您可以轻松扩展上面的代码以支持ControlType 属性。

    【讨论】:

      【解决方案3】:

      对于像这样的脚本,我会放弃 FieldRenderers 并恢复为带有数据绑定到图像(的 url)的常规 html 标记。 LinkManager 是您的朋友。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-31
        • 1970-01-01
        • 2018-04-30
        相关资源
        最近更新 更多