【问题标题】:How to render link with css class with Sitecore Glass Mapper如何使用 Sitecore Glass Mapper 渲染带有 css 类的链接
【发布时间】:2013-10-25 11:00:01
【问题描述】:

我有以下链接:

<a class="btn btn-primary" href="#">View details »</a>

如何使用仍保留 css 类的 sitecore glass 呈现链接?使用 sitecore 中的字段渲染器,您曾经能够将类作为附加参数传递,这如何与 glass 一起使用?

这是我目前所拥有的:

@RenderLink(x => x.Link)

不过,这只会呈现没有类的链接。

任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: c# hyperlink sitecore glass-mapper


    【解决方案1】:

    您也可以像这样制作启用 PageEditor 的版本,它应该自动考虑 Class 属性:

    @Editable(Model, x => x.Link)
    

    或者当你使用 RenderLink 时,你可以传递一个带有 class 属性的集合:

    @RenderLink(x => x.Link, new System.Collections.Specialized.NameValueCollection { { "class", "btn btn-primary" } })
    

    编辑:修改工作代码示例并为可编辑添加格式示例

    您可以为 Editable 指定格式:

    @(Editable<YourModelType>(Model, x => x.Link, string.Format("<a href=\"{0}\" class=\"btn btn-primary\">{1}</a>", x.Link.Url, x.Link.Text)))
    

    【讨论】:

    • 嗨 Ruud,感谢您的回复:这似乎有效:@(RenderLink(x => x.Link, new System.Collections.Specialized.NameValueCollection { { "class", "btn btn- primary" } }, isEditable: true)),我将如何通过你的第一个示例中的类?
    • 为 Editable 添加了另一个示例
    • @RuudvanFalier - 这似乎不适用于 BeginRenderLink - 它说类不能用作分配或目标。还有,我没有橙色的裤子,有问题吗?
    • @PeterG - 对我来说听起来你有错字。此外,显然没有橙色裤子是行不通的..
    • 注意:传递带有类名的 NVC 对象不适用于 @Editable(..)。
    【解决方案2】:

    @Editable(x => x.Link, new { @class= "btn btn-primary" })

    【讨论】:

      【解决方案3】:

      我使用 Fluent API 编写了一个帮助器类,让您可以轻松地将 HTML 属性添加到玻璃帮助器。

      在此处查看博客:http://mikerobbins.co.uk/2015/07/29/sitecore-razor-glass-attribute-helper-methods-fluent-api/

      你可以像这样使用助手:

      @Editable(x => x.Link,new HtmlAttributes().CssClass("Link").Render())
      

      【讨论】:

      • HTMLAttributes 到底是从哪里来的?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多