General Link 字段内容作者将设置一些类。

我想在渲染时更改类,所以我使用了反射器并获得了 Link.cs 的代码并尝试扩展 PopulateParameters 方法,看起来 this.CssStylethis.CssClass 总是空白。有没有办法获取在 General Link 字段中输入的类的值?

最佳答案

将您的字段转换为 LinkField 类并使用 Class 属性:

LinkField field = Sitecore.Context.Item.Fields["Link"];
string cssClass = field.Class;

**编辑: **

如果要更改 Sitecore sc:link 的行为以更改每个链接的 css 类,则需要将自己的处理器添加到 renderField 管道:

public class UpdateLinkClass
{
  public void Process(Sitecore.Pipelines.RenderField.RenderFieldArgs args)
  {
    if (args != null && (args.FieldTypeKey == "link" || args.FieldTypeKey == "general link"))
    {
      Sitecore.Data.Fields.LinkField linkField = args.Item.Fields[args.FieldName];
      if (!string.IsNullOrEmpty(linkField.Class))
      {
        args.Parameters["class"] = linkField.Class + "-custom";
      }
    }
  }
}

并在 GetLinkFieldValue 处理器之前注册它:

<processor type="My.Assembly.Namespace.UpdateLinkClass, My.Assembly" />
<processor type="Sitecore.Pipelines.RenderField.GetLinkFieldValue, Sitecore.Kernel" />

关于Sitecore:如何在常规链接字段中输入类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27136867/

10-15 15:45