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.