2011-09-23 16 views
5

lo que quiero hacer:¿Cómo hago el código Razor en línea dentro de algunos HTML?

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

decir. ya sea

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

o

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

Sin embargo no puedo bastante obtener el derecho de sintaxis. Probé @:-noisy pero que genera errores como

Asegúrese de que tiene una coincidencia "}" carácter para todos los "{" personajes dentro de este bloque

Probé también @: - ruidoso @ pero el mismo error ¿Que debería hacer?

Respuesta

5

El elemento de <texto> volverá a pasar a HTML. De esta manera:

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

Gracias, esto funcionó muy bien – NibblyPig

+0

la tuya es la solución, pero genera un espacio en blanco. Debería ser así: '

quack
' – tugberk

+0

@tugberk: Entonces el resultado podría ser class = "duck-" en lugar de simplemente class = "duck" ... –

1

hacer esto de la siguiente manera:

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

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

ACTUALIZACIÓN

El debajo de uno está generando la mejor solución:

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

ahora él/ella decidió recuperarlo. – tugberk

1

debería ser así

<div @if(this.Model.quacker) 
{ 
@:class='duck-noisy' 
}else{ 
@:class='duck' 
}>quack</div> 
Cuestiones relacionadas