Podczas gdy Microsoft stworzył pewne automagiczne renderowanie atrybutów HTML w maszynce do golenia MVC4, zajęło mi trochę czasu, zanim dowiedziałem się, jak wyrenderować drugą klasę css na elemencie, w oparciu o warunkowe wyrażenie maszynki do golenia. Chciałbym się z wami tym podzielić.
Opierając się na właściwości modelu @ Model.Details, chcę pokazać lub ukryć element listy. Jeśli istnieją szczegóły, należy wyświetlić element div, w przeciwnym razie powinien zostać ukryty. Korzystając z jQuery, wszystko, co muszę zrobić, to dodać odpowiednio klasę show lub hide. Z innych powodów chcę również dodać kolejną klasę, „szczegóły”. Tak więc moja marża powinna wynosić:
<div class="details show">[Details]</div>
lub <div class="details hide">[Details]</div>
Poniżej przedstawiam kilka nieudanych prób (wynikający z marży przy założeniu, że nie ma szczegółów).
To: <div @(@Model.Details.Count > 0 ? "class=details show" : "class=details hide")>
,
uczyni to: <div class="details" hide="">
.
To: <div @(@Model.Details.Count > 0 ? "class=\"details show\"" : "class=\"details hide\"")>
.
uczyni to: <div class=""details" hide"="">
.
To: <div @(@Model.Details.Count > 0 ? "class='details show'" : "class='details hide'")>
uczyni to: <div class="'details" hide'="">
.
Żadne z nich nie są poprawnymi marżami.