MVC3 Razor:コードブロック内にHTMLを表示する


131

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

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

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

回答:


226

あなたは@:エスケープするために使用できます:

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

または<text>レスポンスで出力されない特別なタグ:

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


10

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

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

@かみそりを使用する場合は、コードブロックモードに切り替えます。したがって、上記のようにテキストを指定する必要があります。



8

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

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

0

上記の答えは素晴らしいです。これに関するスコットガスリーの記事へのリンクを含めます。これには、いくつかの例と説明が示されているためです。

https://weblogs.asp.net/scottgu/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax

@if (p.UnitsInStock == 0 {
  <text>
    Donec in ante vitae purus consequat laoreet ut elementum
    purus. Ut ut tempus nulla, quis ultrices est. Integer
    pharetra ante in lectus porta, a lacinia ex faucibus. 
    Aliquam magna risus, pretium vel neque at, laoreet 
    ultrices lectus. Morbi posuere luctus risus. Nullam 
    tincidunt massa egestas nunc tempor scelerisque.  
  </text>
}


@if (p.UnitsInStock == 0 {
  @: Line 1
  @: Line 2
  @: Line 3
}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.