mitログ

学習ノート代わりに学んだことをまとめるためのブログです。

Razor構文

ASP.NET MVC5 の学習メモ。

コードナゲット

cshtmlファイル内で「@」を付けるとC#のコードが書ける。 式の値を出力する。

<div class="form-group">
    @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
    </div>
</div>
  • 終了デミリター不要
  • 終了を明示的に指定したい場合「@(...)」のように括弧で囲う
  • @をエスケープしたい場合「@@」と書けばいい

コードブロック

「@{...}」で出力を伴わない文やif,forなどの制御構文がかける。

<table class="table">
    <tbody>
        @foreach (var account in Model)
        {
            <tr>
                <td>
                    @if (ViewBag.ShowRemoveButton)
                    {
                        // 略
                    }
                </td>
            </tr>
        }
    </tbody>
</table>
  • コードブロック内ではタグを検出すると自動的に静的コンテンツとみなす

コメント

「@...@」でコメントが書ける。エンドユーザからは見えない。

@*コメント*@

コードブロック内ではC#と同じ「//」「/.../」が使える。エンドユーザからは見えない。

@{
    // コメント
}

HTMLのコメントを書くこともできるが、これはエンドユーザから見ることが出来る。

<!-- コメント -->