web-dev-qa-db-ja.com

MVC3 Razor:コードブロック内でのHTMLの表示

私のcshtmlファイルには、次のようなブロックがたくさんあります。

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

スパンが存在する唯一の理由は、「Hello World」がhtmlタグで囲まれていない限り、「Hello World」がhtmlの一部であることを認識させる他の方法を見つけることができないためです。意味のないタグをディスプレイに追加することを伴わないコードをエスケープする良い方法はありますか?

123
DMulligan

@:を使用してエスケープできます:

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

または、応答に出力されない特別な<text>タグ:

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

以下のようにテキストを追加できます。

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

@剃刀を使用すると、コードブロックモードに切り替わります。したがって、上記のようにテキストを指定する必要があります。

9
matmat
<text>Explicit HTML<text>

@(Explicit C#)
8

多くの開発者が上記の多くの方法を提供してきました..ここに、MVC 4でうまく機能しているもう1つがあります。MVC3でも機能することを願っています。

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