У меня есть изображение с вкладками и заголовок, который я хочу показать и скрыть в зависимости от того, существуют изображения или нет. Есть 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>