web-dev-qa-db-fra.com

MVC3 Razor: Affichage de HTML dans des blocs de code

Dans mes fichiers cshtml, j'ai beaucoup de blocs avec des choses comme celle-ci:

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

La seule raison pour laquelle la durée est, c'est parce que je ne trouve pas d'autre moyen de le forcer à reconnaître que "Hello World" fait partie du code HTML, à moins que je ne l'entoure de balises HTML. Y at-il un bon moyen d’échapper au code sans ajouter de balises sans signification à l’affichage?

123
DMulligan

Vous pouvez utiliser @: pour échapper à:

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

ou le spécial <text> balise qui n'est pas sortie dans la réponse:

@if(Model.foo)
{
    <text>Hello World</text>
}
211
Darin Dimitrov
@if(Model.foo)
{
  @:Hello World
}
13
Sergey Metlov

Vous pouvez ajouter du texte comme ci-dessous:

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

quand vous utilisez @ _ rasoir le commute en mode bloc de code. Par conséquent, vous devez spécifier le texte comme ci-dessus.

9
matmat
<text>Explicit HTML<text>

@(Explicit C#)
8
Cătălin Rădoi

beaucoup de développeurs ont fourni beaucoup de façons ci-dessus .. en voici une de plus qui fonctionne très bien dans MVC 4 .. J'espère que cela fonctionnera aussi pour MVC 3 ..

@if(Model.foo)
{
    @Html.Label("Hello World")
}
8
NMathur