如何在sitecores MVC HtmlHelper中为字段添加一个css类来封装标记?

时间:2017-12-12 12:14:32

标签: html sitecore frontend sitecore-mvc sitecore8.2

我希望在@ Html.Sitecore()时呈现private final AtomicLong pendingAndComplete = new AtomicLong(); void markComplete() { this.pendingAndComplete.addAndGet(1L<<32-1); // this is atomic } void markPending() { this.pendingAndComplete.incrementAndGet(); // this is atomic } void doSomething() { long current = this.pendingAndComplete.get(); // this fetches the current state atomically int currentCompleted = (int)(current >> 32); int currentPending = (int) current; } 。字段(TPage.Headline)包含一个值但我也不想在字段为时呈现封闭标记<h1 class="page-heading">@Html.Sitecore().Field(TPage.Headline)</h1>空。

使用<h1 class="page-heading">几乎可以做我想要的但是它不包括css类。

如何使用Sitecore HTML帮助程序为封闭标记指定类名?或者有其他方法可以避免渲染空标记吗?

2 个答案:

答案 0 :(得分:0)

我不确定怎么用Field辅助方法来做,但老式的做事方式可以这样做:

@if(!String.IsNullOrEmpty(TPage.Headline)){
   <h1 class="page-heading">@Html.Sitecore().Field(TPage.Headline)</h1>
}

在您的情况下,当字段为空时,您无法输出任何内容,因此应进行简单的IF检查。

答案 1 :(得分:0)

谢谢@Jay S,到目前为止,我最终得到了:

@if( Sitecore.Context.PageMode.IsExperienceEditor)
   || Model.Item.FieldHasValue(TPage.Headline)
{
    <h1 class="page-heading">@Html.Sitecore().Field(TPage.Headline)</h1>
}
@if ( Sitecore.Context.PageMode.IsExperienceEditor
      || Model.Item.FieldHasValue(TPage.Ingress))
{
    <p class="ingress">@Html.Sitecore().Field(TPage.Ingress)</p>
}

它有效,但我不喜欢杂乱,会更喜欢两个一个衬里而不是8-10行。