asp.Netmvc 4高級プログラミング学習ノート:第三章ビュー(2)
1875 ワード
ページレイアウト
asp.NetMVCではレイアウトのサポートが提供されており、デフォルトではレイアウトファイルは/View/Shared/ディレクトリに保存されます.Layout.cshtml、Viewディレクトリに_があります.ViewStart.cshtmlファイル、中のコード
を選択してViewStart.cshtmlファイルは、このディレクトリ内のすべてのビューのデフォルトのマスターページを設定するためにサブディレクトリに作成されます.
このレイアウトファイルには、@RenderBody()コードでコンテンツページの内容を埋め込みます.
このページでは、ビューで定義された領域の内容をテンプレートページに@RenderSection(「scripts」,required:false)で埋め込むSection(領域)もサポートされています.
ビュー内の領域を定義する必要があるかどうかを指定できます.ビューでは、次のコードで領域を定義します.
ASP.NET MVCでは、一部のビューの機能を提供しており、ページ内で以下のようにして、一部のビューの内容を取得し、現在のページに埋め込むことができます.
ここで、Partialは、別のローカルビューの内容を直接ページに埋め込み、ローカルビューに必要なデータをパラメータで渡すことを示します.
Renderの先頭にある方法では、ローカルビューの内容が現在のビューの応答ストリームに書き込まれ、効率が少し高くなります.ただし、コードブロック方式@{コード}呼び出しを使用する必要があります.
Renderの先頭を持たない方法では、ページに埋め込まれた文字列値が返されます.
asp.NetMVCではレイアウトのサポートが提供されており、デフォルトではレイアウトファイルは/View/Shared/ディレクトリに保存されます.Layout.cshtml、Viewディレクトリに_があります.ViewStart.cshtmlファイル、中のコード
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
このディレクトリの下にあるデフォルトのレイアウトファイルが誰であるかを示します.このコードを特定のViewファイルに追加して、テンプレートページを変更できます.を選択してViewStart.cshtmlファイルは、このディレクトリ内のすべてのビューのデフォルトのマスターページを設定するためにサブディレクトリに作成されます.
このレイアウトファイルには、@RenderBody()コードでコンテンツページの内容を埋め込みます.
このページでは、ビューで定義された領域の内容をテンプレートページに@RenderSection(「scripts」,required:false)で埋め込むSection(領域)もサポートされています.
ビュー内の領域を定義する必要があるかどうかを指定できます.ビューでは、次のコードで領域を定義します.
@section
{
}
部分ビューASP.NET MVCでは、一部のビューの機能を提供しており、ページ内で以下のようにして、一部のビューの内容を取得し、現在のページに埋め込むことができます.
@{ Html.RenderPartial(" ", ); }
@Html.Partial(" ", );
@{ Html.RenderAction("actionName","controllerName"," "); } : @{Html.RenderAction("Test", "Home", new { s=item});} //s Action
@Html.Action("actionName","controllerName"," ")
ここで、Actionは、別のAction内のコードを呼び出し、パラメータを介して必要なデータを渡し、Return PartialView()を介して、ローカルビューの内容をページに埋め込むことを表す.ここで、Partialは、別のローカルビューの内容を直接ページに埋め込み、ローカルビューに必要なデータをパラメータで渡すことを示します.
Renderの先頭にある方法では、ローカルビューの内容が現在のビューの応答ストリームに書き込まれ、効率が少し高くなります.ただし、コードブロック方式@{コード}呼び出しを使用する必要があります.
Renderの先頭を持たない方法では、ページに埋め込まれた文字列値が返されます.