2011-07-06 19 views
109

W moich plików cshtml Mam wiele bloków z materiału takiego:MVC3 Razor: Wyświetlanie html wewnątrz bloków kodu

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

Jedynym powodem, dla którego rozpiętość jest tam dlatego, że nie mogę znaleźć żadnego innego sposobu zmusić go do uznania, że ​​"Hello World" jest częścią html, chyba że otaczam go tagami html. Czy istnieje dobry sposób na ucieczkę od kodu, który nie wiąże się z dodawaniem do wyświetlacza nic nie znaczących tagów?

Odpowiedz

195

Można użyć @: uciec:

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

lub specjalnego <text> tag, który nie jest wysyłany w odpowiedzi:

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

Możesz dodać tekst, jak poniżej:

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

podczas korzystania z maszynki do golenia @ należy przełączyć ją w tryb bloku kodu. Dlatego musisz określić tekst jak powyżej.

8
<text>Explicit HTML<text> 

@(Explicit C#) 
7

wielu deweloperów dostarczył wiele sposobów powyżej .. tutaj jest jeszcze jeden, który działa poprawnie w MVC 4 .. Mam nadzieję, że będzie pracować dla MVC 3 także ..

@if(Model.foo) 
{ 
    @Html.Label("Hello World") 
} 
Powiązane problemy