2011-07-06 25 views
109

En mis archivos cshtml que tengo un montón de bloques con cosas como esta:MVC3 Razor: Viendo html dentro de los bloques de código

@if(Model.foo) 
{ 
    <span>Hello World</span> 
} 

La única razón por la amplitud es allí es porque no puedo encontrar ninguna otra manera para forzarlo a reconocer que "Hello World" es parte del html a menos que lo rodee en etiquetas html. ¿Hay una buena manera de escapar del código que no implica agregar etiquetas sin sentido a la pantalla?

Respuesta

195

Usted podría utilizar @: escapar:

@if(Model.foo) 
{ 
    @:Hello World 
} 

o la <text> etiqueta especial que no se emite en la respuesta:

@if(Model.foo) 
{ 
    <text>Hello World</text> 
} 
12
@if(Model.foo) 
{ 
    @:Hello World 
} 
9

Se puede añadir texto en la siguiente manera:

@if(Model.foo) 
{ 
    @:Hello World 
} 

cuando usa la afeitadora @, cambie al modo de bloque de código. Por lo tanto, debe especificar el texto como se indica arriba.

8
<text>Explicit HTML<text> 

@(Explicit C#) 
7

muchos desarrolladores ha proporcionado muchas maneras por encima .. aquí es uno más que está trabajando muy bien en MVC 4 .. espero que trabajará para MVC 3 también ..

@if(Model.foo) 
{ 
    @Html.Label("Hello World") 
} 
Cuestiones relacionadas