[英]Checking if 2 of 3 string is null to do something in razor/c#
我有一个标签式图像和标题,我想根据图像是否存在来显示和隐藏。 有 3 个图像和 3 个标题,如果每个图像的图像都是空的,我已经在隐藏标题(请参阅代码)。 现在我有一个新要求,如果只有 3 个图像中的 1 个,则隐藏所有标题。 顺便说一句,我正在通过检查“src”存在(这是一个字符串)来检查图像是否存在。
所以我知道我可以像这样检查所有字符串是否为空
bool allNull = strings.All(s => s == null);
但是我如何检查 3 个图像/字符串中的 2 个是否为空?
我目前的解决方案是一个简单的计数器,然后使用 jquery 删除标题,效果很好,但我想知道是否有 ac#/razor 答案(在 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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.