きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

Razorで@functionsブロックを使う

RazorでクラシックASPのページ内サブルーチンを使うのと同じように、ページ内のスコープで有効なメソッドを.cshtmlファイル内に定義したい…と思ったとき、使えるが@functionsブロックです。

たとえばクラシックASPでやっていた

<html>
<body>
  <h1><%= GetName() %></h1>
</body>
</html>
<%
Function GetName()
    GetName = "kiyokura"
End Function
%>

こんな感じのことをやりたいなら、

<html>
<body>
  <h1>@GetName</h1>
</body>
</html>
@functions{
  string GetName(){
    return "kiyokura";
  }
}

という感じでできる。

helperでやるにはなんか違う、クラスを作ってという言うまででもないようなものであれば、十分使える構文だと思います。