Лучший синтаксис для @if с несколькими ИЛИ и если внутренний - PullRequest
0 голосов
/ 22 мая 2018

Мне нужна ваша помощь по поводу синтаксиса в C #:

вот мой фактический код:

<div class="class">
    <h5>MySuperTitle</h5>
    <ul>
        @if (Ms.Cs.value1 != null)
        {
            <li> My Li1 <span>@Ms.Cs.value1</span> </li>
        }
        @if (Ms.Cs.value2 != 0)
        {
            <li> My Li2 <span>@Ms.Cs.value2</span> </li>
        }
        @if (true)
        {
            <li> My Li3 <span>--</span></li>
        }
        @if (Ms.Cs.value4 != 0)
        {
            <li> My Li4 <span>@Ms.Cs.value4</span></li>
        }
        @if (Ms.Cs.value5 != null)
        {
            <li> My Li5 <span>@Ms.Cs.value5</span></li>
        }
    </ul>
</div>

Что мне нужно, так это добавить условие @if на MySuperTitle"слишком, чтобы скрыть это, если нет значения" sub ".

Должен ли я добавить @if (Ms.Cs.value1 != null) || (Ms.Cs.value2 != 0) || (Ms.Cs.value4 != 0) .....?

Или есть лучший синтаксис?Большое спасибо

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Я предполагаю, что вы используете ViewModel.Если это так, в вашей ViewModel вы можете сделать это следующим образом:

public bool Value1Exists
{
    get
    {
        return Value1 != null
    }
}
...
public bool HasItems
{
    get
    {
        if (Value1Exists || Value2Exists || ...)
             return true;
        else
            return false;
    }
}

Тогда в вашем представлении бритвы:

@if(Ms.HasItems) {
    <h5>MySuperTitle</h5>
    <ul>
        @if (Ms.Value1Exists) {
            ...
        }
        ...
    </ul>
}
0 голосов
/ 22 мая 2018

Вы можете определить это отдельно в кодовом блоке функции рендеринга.

Обратите внимание, что вы можете сделать свой код Razor более кратким, используя одинаковые открывающие скобки:

<div class="class">
@{
    Boolean hasAnyData = Ms.Cs.value1 != null || Ms.Cs.value2 != 0 || Ms.Cs.value4 != 0 || Ms.Cs.value5 != null;
}
    @if( hasAnyData ) {
    <h5>MySuperTitle</h5>
    <ul>
        @if (Ms.Cs.value1 != null) {
            <li> My Li1 <span>@Ms.Cs.value1</span> </li>
        }
        @if (Ms.Cs.value2 != 0) {
            <li> My Li2 <span>@Ms.Cs.value2</span> </li>
        }
        @if (true) {
            <li> My Li3 <span>--</span></li>
        }
        @if (Ms.Cs.value4 != 0) {
            <li> My Li4 <span>@Ms.Cs.value4</span></li>
        }
        @if (Ms.Cs.value5 != null) {
            <li> My Li5 <span>@Ms.Cs.value5</span></li>
        }
    </ul>
    }
</div>
...