2011-09-23 11 views
5

Co chcę zrobić:Jak zrobić wbudowany kod brzytwy w jakimś HTML?

<div class='[email protected] (this.Model.quacker) { -noisy }'>quack</div> 

tj. albo

<div class='duck'>quack</div> 

lub

<div class='duck-noisy'>quack</div> 

jednak zupełnie nie mogę uzyskać prawo składni. Próbowałem @:-noisy ale generuje błędy, takie jak

upewnij się, że mają pasujące „}” znaków dla wszystkich „{” znaków ramach tego bloku

Próbowałem też @: - głośny @ ale ten sam błąd. Co powinienem zrobić?

Odpowiedz

5

Element <tekst> przejdzie ponownie do HTML. W ten sposób:

<div class='[email protected] (this.Model.quacker) { <text>-noisy</text> }'>quack</div> 
+0

Dzięki, ten działał świetnie – NibblyPig

+0

twoje jest rozwiązaniem, ale generuje białe pole. Powinno być tak: '

quack
' – tugberk

+0

@tugberk: Wtedy wynik mógłby być class = "duck-" zamiast tylko class = "duck" ... –

1

to zrobić w następujący sposób:

@{ 
    var poo = string.Format("{0}{1}", "duck", (this.Model.quacker) ? "-noisy" : ""); 
} 

<div class='@poo'>quack</div> 

UPDATE

poniżej jednego generuje najlepsze rozwiązanie:

<div class='@("duck")@if(this.Model.quacker){<text>-noisy</text>}'>quack</div> 
+0

teraz zdecydował się go odzyskać. – tugberk

1

powinno być tak

<div @if(this.Model.quacker) 
{ 
@:class='duck-noisy' 
}else{ 
@:class='duck' 
}>quack</div> 
Powiązane problemy