用語整理
レイアウト
* ヘッダやフッタなどの共通レイアウトを定義したビュー(デザインのテンプレート) * ASP.NETのマスターページのようなもの (ASP.NETのマスターページについては、以下の関連記事を参照のこと。)http://blogs.yahoo.co.jp/dk521123/27193663.html
セクション
* レイアウトに埋め込める一部分のコンテンツ領域
サンプル
コントローラ
SampleLayoutController.vb(ただビューを表示するだけ)Imports System.Web.Mvc Namespace Controllers Public Class SampleLayoutController Inherits Controller Function Index() As ActionResult Return View() End Function End Class End Namespace
ビュー
* Sharedディレクトリを右クリックし、[Add]-[MVC5 Layout Page(Razor)]で レイアウト(マスターページ)を追加_LayoutPage1.vbhtml(レイアウト(マスターページ))
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>@ViewData("Title")</title> </head> <body> <div> @RenderSection("sectionHeader") </div> <div> @RenderBody() </div> <div> @RenderSection("sectionFooter") </div> </body> </html>Index.vbhtml
@Code Layout = "~/Views/Shared/_LayoutPage1.vbhtml" ViewData("Title") = "Index" End Code <h2>Index2</h2> ボディー @Section sectionHeader <div>ヘッダー</div> End Section @Section sectionFooter <div>フッター</div> End Section
出力結果
ヘッダー Index ボディー フッター
参考文献
http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_08/aspnetmvc3_08_01.htmlhttp://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_08/aspnetmvc3_08_02.html
http://codezine.jp/article/detail/5548
とても参考になった
http://blog.codable.co.jp/entry/2015/02/21/010448
http://blog.shibayan.jp/entry/20110731/1312107909
http://takepara.blogspot.jp/2010/10/razorlayout.html