如何在字段的 sitecores MVC HtmlHelper 中添加 css class 来封闭标记?

How do I add a css class to enclosing tag in sitecores MVC HtmlHelper for fields?

我想在@Html.Sitecore().Field(TPage.Headline) 包含一个值时呈现 <h1 class="page-heading">@Html.Sitecore().Field(TPage.Headline)</h1> 但我也不想呈现封闭标签 <h1 class="page-heading"> 当字段为空时。

使用 @Html.Sitecore().Field(TPage.Headline, new { @class="page-heading", EnclosingTag="h1"}) 几乎可以满足我的要求,但它不包括 css class.

如何使用 Sitecore HTML 帮助程序为封闭标签指定 class 名称?或者还有其他方法可以避免呈现空标签吗?

我不确定如何使用 Field 辅助方法来完成它,但老派的做事方式可以像这样完成:

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

在你的例子中,当字段为空时你没有任何输出,所以一个简单的 IF 检查应该可以。

谢谢@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 行。