繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM