检查3个字符串中的2个是否为空,以便在razor/c#中执行某些操作



我有一个选项卡式图像和标题,我想根据图像是否存在来显示和隐藏。有3个图像和3个标题,如果每个图像都是空的,我已经隐藏了标题(见代码(。现在我有一个新的要求,隐藏所有标题,如果只有1的3个图像存在。顺便说一句,我正在通过检查"src"exist(这是一个字符串(来检查图像是否存在。

所以我知道我可以检查是否所有的字符串都像这个一样是空的

bool allNull = strings.All(s => s == null);

但是,我如何检查3个图像中的2个字符串是否为空?

我目前的解决方案是一个简单的计数器,然后使用jquery删除标题,这很好,但我想知道是否有c#/rarzor答案(在cshtml文件中(

<div class="tabbed-images pt-25 pt-sm-50 pb-sm-25">
<div class="header">
@{
int counter = 0;
if (!string.IsNullOrEmpty(Model.BasicLevelImage.Src))
{
counter = counter + 1;
<div class="tab-item active bg-pl-basic">@Sitecore.Globalization.Translate.Text("PackageFeatureLevelBasic")</div>
}
if (!string.IsNullOrEmpty(Model.ProfessionalLevelImage.Src))
{
counter = counter + 1;
<div class="tab-item bg-pl-professional">@Sitecore.Globalization.Translate.Text("PackageFeatureLevelProfessional")</div>
}
if (!string.IsNullOrEmpty(Model.PremiumLevelImage.Src))
{
counter = counter + 1;
<div class="tab-item bg-pl-premium">@Sitecore.Globalization.Translate.Text("PackageFeatureLevelPremium")</div>
}
if (counter < 2)
{
<script>
jQuery(document).ready(function ($) {
$(".tabbed-images .header").remove();                      
}); 
</script>
}
}
</div>
<div class="image-container">
@Html.Glass().Editable(x => x.BasicLevelImage, new { @class = "resp-img active" })
@Html.Glass().Editable(x => x.ProfessionalLevelImage, new { @class = "resp-img" })
@Html.Glass().Editable(x => x.PremiumLevelImage, new { @class = "resp-img" })
</div>

试试这个:

bool allNull = strings.Count(s => s == null) == 2;

最新更新