Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

ASP.NET Core CSHTMLでタグのない文字列を出力する方法

CSHTML で HTMLタグのない文字列を出力しようとしたらエラーになりました。

以下に詳細と対応方法を記載していきます。

コード例

エラーが発生したコードの一部は以下の通りです。

<p id="condition">検索条件:
  @{
    var keyword = ViewData["keyword"] as string;
  }
  @if (keyword == null || "".Equals(keyword)) {
    なし
  } else {
    @keyword
  }
</p>

エラー発生個所は、文字列「なし」の行です。変数 keyword の値によって、<p>タグの中身を変える実装です。

対応方法

文字列の先頭に @: を付けるか、<text> タグを使うとエラーが解消されました。

@:なし
<text>なし</text>

どちらも内容だけが HTMLとして出力されます。@:<text> タグ自体は出力されません。

参考文献

ASP.NET Core の Razor 構文リファレンス - Microsoft