Проверка, является ли строка 2 из 3 нулевой, чтобы что-то сделать в razor / c # - PullRequest
0 голосов
/ 31 марта 2020

У меня есть изображение с вкладками и заголовок, который я хочу показать и скрыть в зависимости от того, существуют изображения или нет. Есть 3 изображения и 3 заголовка, я уже скрываю заголовки, если изображения для каждого из них пусты (см. Код). Теперь у меня есть новое требование: скрыть все заголовки, если существует только 1 из 3 изображений. Кстати, я проверяю, существует ли изображение, проверяя «sr c» (это строка).

Итак, я знаю, что могу проверить, все ли строки пусты, как это

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

Но как мне проверить, пусто ли 2 из 3 изображений / строка?

Мое текущее решение - это простой счетчик, использующий jquery для удаления заголовков, что прекрасно работает, но я хочу знать, есть ли ответ ac # / razor (в файле cs html)

<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>

1 Ответ

5 голосов
/ 31 марта 2020

Попробуйте это:

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