我希望在@ 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帮助程序为封闭标记指定类名?或者有其他方法可以避免渲染空标记吗?
答案 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行。