依存性注入を使用することを試みることにASP.NETコアサポート。このビューは、ビューの要素を取り込むために使用される、ローカライズまたはデータのみなど、特定のサービスを提供するのに役立ちます。コントローラとビュー間の関心事の分離を維持する必要があります。ビューを表示するデータのほとんどは、コントローラから渡されなければなりません。
使用@Injectサービス指令は、例えば、ビュー、構文@Inject <タイプ> <名前>に注入されています。
@model MVCTest.Models.Operation @using MVCTest.Services @Inject BaseInfoServices BaseInfoServices @ { ViewDataを[ " タイトル" ] = " 作成" 。 } <UL> @foreach(VARの都市におけるBaseInfoServices.GetCities()) { <LI> @city </ LI> } </ UL>
パブリック クラスBaseInfoServices { 公共の一覧< 文字列 > GetCities() { 返す 新しいリスト< 文字列 > )(; } }
事前に構成されたConfigureServicesは、サービスコンテナに添加しました。
1.検索パディングデータ
そのようなドロップダウンリストボックスとして表示するUI要素を充填注射を容易にします。例えば、性別、状態、およびユーザ・データの他の形態。あなたは、標準のMVCでこのフォームをレンダリングする場合は、オプションの各セットのためのコントローラが必要ですデータ・アクセス・サービスを要求して、モデルやオプションViewBag各グループが結合内に充填されています。
別のサービスは、直接これらのオプションのビューデータ内に注入されます。最小限にコントローラコードの量を減少させるこの方法は、要素の論理ビューは、ビュー自体を移動させるように構成されています。アクションコントローラは、単にフォームにユーザプロファイルデータを渡します。
2.書き換えサービス
サービスを注入することに加えて、この技術は、以前のサービスに注入ページを上書きするために使用することができます。たとえば、デフォルトのHTMLヘルパーを置き換えます。
@model MVCTest.Models.Operation
@using MVCTest.Services
@Inject BaseInfoServices BaseInfoServices
@Inject MyHtmlHelperのHTML
サービスのカスタムを呼び出しますビューで@htmlを使用してください。
既存のサービスを拡張するのではなく交換したい場合は、あなただけのサービスを継承することができたり、パッケージが達成されたように、この技術を使用する必要があります。