1.部分図とは何ですか
部分的なビューは他のビュービューで表示されます。HTML出力で提示部分図を行うことによりビューを呼び出して生成。ビューのように、部分的なビューは、ファイル拡張子を使用.cshtml。所望のページが異なるビューの間で共有の再利用可能な部品である場合、部分図を使用することができます。
2.部分的なビューを使用して
これは、ウィジェットに大きなビューのための有効な方法の部分図です。一般的なレイアウト要素を_Layout.cshtmlで指定する必要があり、非再利用可能なコンテンツのレイアウトは、部分図として包装することができます。
複数の論理部品の複雑なページならば、それぞれの論理部分が部分図として有用です。レイアウトビューと通常のビューの間には意味的な違いは、彼らはさまざまな方法で提示されていません。あなたはするViewResultコントローラからビューに戻ることができ、このビューには、部分図として使用することもできます。主な違いは、詳細ビューは異なるプレゼンテーション、部分図_ViewStart.cshtmlを実行し、実行している表示されませんです。
参照部分図3
ビューページでの部分ビューをレンダリングする方法はいくつかあります。@ Html.Partial(「AuthorPartial」):最も簡単にはHtml.Partialを使用し、@接頭辞でIHtmlStringを呼び出すためにそれを返すことです。
この方法は、PartialAsync非同期コードの部分的なビューが提供されてあっ@await Html.PartialAsync(「AuthorPartial」)。
れるrenderPartial方法はまた、部分的なビューをレンダリングするために使用されてもよいです。このメソッドは結果を返しません:それを直接レンダリング結果の出力応答に。それが応答を返さないので、それはカミソリのコードブロックと呼ばれる必要があります。GMはまた、非同期メソッドRenderPartialAsyncがあります。
@ { Html.RenderPartial(" AuthorPartial " )。 }
4.部分図を探します
部分図を参照する場合、その位置は、様々な方法で求めることができます。
// 現在のフォルダビューにビューの名前を使用し、見つからない場合は、共有フォルダを検索 @ Html.Partial(「VIEWNAME 」) // このビュー名は、同じファイルフォルダ内になければなりません @ Html.Partial(「VIEWNAME .cshtml 「) // のアプリケーションに配置ビューのルートパスに応じて、」/「または」〜/「アプリケーションパスルートの始まりを表し Html.Partial(@ 」〜/ビュー/フォルダ/ ViewName.cshtml " ) // 比較的使用パス Html.Partial(@ " ../Account/ViewName.cshtml ")
可能なリンクの部分図。つまり、人は別の部分図の部分図(彼らはループを作成していない)を呼び出すことができます。
アクセスデータの部分図
部分図がインスタンス化されるとき、それは親ビューのViewData辞書のコピーを取得します。更新は親ビューには影響しませんデータの部分図を作りました。リターンのときに部分図、変化のViewDataを部分図が失われます。
@ Html.Partial( "PartialName"、customViewData):あなたはViewDataDictionaryビューのローカルインスタンスに転送することができます。
@ Html.Partial(「PartialName」、ViewModelに):モデルはまた、部分図に渡すことができます。
モデルもViewDataDictionaryすることができ、ビューに渡されます@ Html.Partial(「PartialName」、ViewModelに、customViewData)。
6.シンプルな戦闘
使用したモデルを作成します。
名前空間MVCTest.Models { パブリック クラス条 {
公共条()
{
セクション=新しいリスト<ArticleSection>();
}
公共の 文字列 AUTHORNAME { 取得します。セット; } 公共の一覧<ArticleSection>セクション{ 取得します。セット; } } パブリック クラスArticleSection { 公共の 文字列のタイトル{ 取得します。セット; } パブリック 文字列の内容{ 取得します。セット; } } }
そして、コントローラのインスタンス化モデル:
パブリック クラスArticleControllerは:コントローラー { // GET:条 公共のActionResultインデックス() { VARの記事= 新条(); article.AuthorName = " テスト" ; article.Sections.Add(新しい ArticleSection(){タイトル= " タイトル"、コンテンツ= " コンテンツ" })。 返すビュー(記事を)。 } }
親ビュー:
@model MVCTest.Models.Article @ { ViewDataを[ "タイトル"] = "インデックス"。 } < H2 > Model.AuthorName @ </ H2 > @ Html.Partial( "AuthorPartial"、Model.AuthorName)。 @foreach(@ Model.SectionsにおけるVAR部) { @ Html.Partial( "ArticleSection"を参照)。 }
AuthorPartial.cshtml:
@model文字列 < H3 > @Model </ H3 >
ArticleSection.cshtml:
@model MVCTest.Models.ArticleSection < H3 > Model.Title @ </ H3 > < H2 > @ Model.Content </ H2 >