しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

年末にも関わらずガスリーたんが元気

ScottGu's Blog - ASP.NET MVC 3: Layouts and Sections with Razor

ようやく @section に関する解説記事が来ましたね。Razor の @section に関しては私の方でも Preview 1 の時に少し書きましたが*1、引数の名前やオーバーロードが変わっているのであまり役に立ちません。

これを使って何をするかというと、まあ間違いなくサイドバーの表示でしょう。@section は Razor で一番強力な機能と思っているので、またいろいろ調べて書いていけたらなーと思います。RenderSection の引数でセクションが必須かどうか指定できるので、テンプレートごとにセクションの出しわけも非常に簡単に出来ます。

@* セクションを出力 *@
<div>@RenderSection("section", false)</div>
...
@* 何処か別の場所 *@
@if (IsSectionDefined("section")) {
    <div>section が表示されてないとダメ</div>
}

実際は aspx で言うところの ContentPlaceHolder なんですけど、IsSectionDefined メソッドで簡単にセクションの存在を確認できるのも良いですね。上のコードのように特定のセクションが存在する時だけ、別のセクションを表示するといったことも出来そうです。