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