Web開発など

Java, JS, CSS, HTML, Unity, C# のことなどを書いてます。フリーソフトの公開もしています。

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>

詳細は以下の参考文献に記載されています。

参考文献

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