ASP.NET MVCコア(部分図)の部分図

 

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 >

 

おすすめ

転載: www.cnblogs.com/afei-24/p/11293991.html