本題
ASP.NET Coreで作成するページはRazor構文で書かれ、コメントの書き方が2種類ある。
<!-- -->
で括る方法と @* *@
で括る方法だ。
<!-- コメント1 -->
@* コメント2 *@
どちらも実動作上は存在しないものとして解釈されるが、解釈されるタイミングが違う。
上記コメント1のほうはブラウザで解釈される一方、
コメント2のほうはASP.NET Coreのコンパイラーで解釈される。
したがって前者はコンパイル後のHTMLに残り、後者はHTMLに残らない。
以下のようなソースコードをコンパイルして実行すると、
Index.cshtml
<!-- とても愛想の良い表情を浮かべながら -->
<h2>太郎さんってモテそうですよね!</h2>
@* (嘘。絶対にない。生理的に無理。) *@
以下のようなHTMLコードが出力される。
Index.html
<!-- とても愛想の良い表情を浮かべながら -->
<h2>太郎さんってモテそうですよね!</h2>
したがって、<!-- -->
で書いたコメントはブラウザのソースコードを表示する機能でばっちり見られる。
隠しておきたい本音とか、陰口とか、設計仕様などは @* *@
でしたためるのがいいだろう。
スクリプト部分への適用
あと、@* *@
のほうは.cshtmlファイル上のスクリプトにも有効。
MyScript.cshtml
<script>
// これはブラウザに表示される
@* これはブラウザに表示されない *@
alert("生理的に無理!!!");
</script>
ショートカットキーについて
ちなみにVisual Studioのショートカットキーで、
Ctrl + k
,Ctrl + c
と打つと現在の行または選択箇所がコメントアウトされるが、
.cshtmlの場合 <!-- -->
になったり@* *@
になったりする。
@* *@
のコメントとそれ以外のものをまとめて範囲選択してショートカットキーでコメントアウトすると前者のコメントになり、それ以外の選択範囲だと後者のコメントになる
・・・ことが多い。詳しい条件は知らない(検証もしていない(する気もない))。