2012-03-26 11 views
5

Czy mogę w ogóle zoptymalizować przypisanie klasy? Muszę to zrobić w wielu różnych miejscach i próbuję dowiedzieć się, jak zmniejszyć to ... kopiować wklej-ish/inline.Czy istnieje lepszy sposób dynamicznego dodawania css w maszynce do golenia niż w przypadku @if()

@foreach(var m in Model.ObjectList) 
{ 
<td @if(m.RandomObject.isFlagged){ 
    <text>class="flagged"</text> 
    } 
> 
    @m.RandomObject.Name @m.RandomObject.Description 
</td> 
} 

Zauważ, że każda Lista obiektów w różnych miejscach ma różne Losowe Obiekty.

przypuszczam to będzie działać zbyt, ale nadal nie wydaje się najlepszą praktyką:

<td class="[email protected](m.RandomObject.isFlagged)">... 

i wtedy definicja css być .flaggedtrue

Odpowiedz

7

Zwykle używam ?ternary operator dla tego rodzaju rzeczy

<td class="@(m.RandomObject.isFlagged ? "flagged" : "")"> 
    ... 
</td> 
+1

Chociaż miło było czytać :), liczyłem na bardziej ogólne podejście, aby uniknąć zaznaczania każdego td zawierającego Rando mObject z warunkowym –

+0

@TravisJ: nie ma sposobu wokół logiki; +1 dla czystej odpowiedzi Andrew. Może zostać wyodrębniony do metody pomocniczej dla dodatkowej "schludności". –

+0

Myślę, że rozumiem, więc zamiast sprawdzać warunkowe dla każdego td, alternatywą jest twoja druga sugestia - tj. Wyprowadzanie warunku i tworzenie klas css, które go zawierają : ' mogłoby skutkować' .flagged-true' oraz '.flagged-false' css classes – Andrew

Powiązane problemy