SparkViewEngine: If, else, elseif

Una delle cose che trovo più belle di Spark è la possibilità di ridurre, a volte anche dimezzare, il numero di righe di codice presenti all’interno delle nostre View.

Fortunatamente con MVC molta della logica non esiste più, a parte quella riguardante la visualizzazione o meno di un blocco di html, il cambiamento di un css in base ad una condizione, oppure l’iterazione di una collection; in soldoni non dovremmo avere molto codice all’interno se non delle if/else, dei for.

Supponiamo di avere un codice come il seguente:

<%if (Model.RecentPost.Count > 0){%>
<li>
   something
</li>
<%}%>

in Spark possiamo rimuovere due righe, la prima di apertura della if e quella di chiusura, impostando la condizione direttamente nell’attributo del tag da mostrare, come da snippet seguente:

<li if="Model.RecentPost.Count > 0">
    something
</li>

Ovviamente, se la if non deve racchiudere un solo tag ma più blocchi di tag non annidati, si può utilizzare l’apposita sintassi di Spark che, come potete vedere dall’esempio seguente, è molto simile al codice HTML:

<if confition="Model.RecentPost.Count > 0">
    <li>something</li>
    <li>something 1</li>
    <li>something 2</li>
</if>

Anche le altre condizioni else ed elseif funzionano allo stesso modo:

<li if="Model.RecentPost.Count > 0">something</li>
<li elseif="Model.RecentPost.Count == 0">something 1</li>
<else>
    <li>something 2</li>
</else>

Oppure:

<if condition="Model.RecentPost.Count > 0">
   <li>something</li>
</if>
<else if="Model.RecentPost.Count == 0">
  <li>something 2</li>
</else>
<else>
  <li>something 3</li>
</else>

Enjoy Spark


Comments