ASP.NET Core MVCのエリア(Area)

2160 ワード

エリア(Area)はASP.NET MVC機能は、関連する機能を別のネーミングスペース(ルーティング用)とファイル構造(ビュー用)に整理するために使用されます.領域を使用して、コントローラと操作にルーティングパラメータ(area)を追加することで、ルーティング目的の階層を作成します.
エリアは大型ASPを提供する.NET Core MVC Webアプリケーションをより小さな機能パケットに分割する方法.1つの領域は実際にはアプリケーション内のMVC構造である.大規模なアプリケーションでは、アプリケーションを個別のマシン機能領域に分割することが有利です.例えば、複数の事業所を有する電子商取引アプリケーションの決済、課金、検索などである.
ASP.NET Core MVCプロジェクトでは、1つの領域を独自のコントローラ、ビュー、モデルのセットを持つ小さな機能ユニットとして定義できます.
次の場合は、使用領域を考慮します.
アプリケーションは複数の高度な機能コンポーネントで構成されており、論理的に分離する必要があります.
MVC項目を区切って、各機能領域が単独で動作できるようにしたい.
地域の特徴:
    ASP.NET Core MVCアプリケーションには任意の数の領域があります.
各領域には独自のコントローラ、ビュー、モデルがあります.
大規模なMVCプロジェクトを独立して動作可能な複数の高度なコンポーネントに編成できます.
同じ名前の複数のコントローラをサポートします.領域が異なる限り.
 
設定領域のルーティングはASP.NET Core MVCのルート(Routing)で紹介されています.領域ビューの検索パスは通常のビューと一致し、デフォルトの位置はMicrosoftを通過することができる.AspNetCore.Mvc.Razor.RazorViewEngineOptionsのAreaViewLocationFormatメソッドが修正されました.
たとえば、次のコードのフォルダ名はAreaで、Categoriesに変更されます.
services.Configure(options =>
            {
                options.AreaViewLocationFormats.Clear();
                options.AreaViewLocationFormats.Add("/Categories/{2}/Views/{1}/{0}.cshtml");
                options.AreaViewLocationFormats.Add("/Categories/{2}/Views/Shared/{0}.cshtml");
                options.AreaViewLocationFormats.Add("/Views/Shared/{0}.cshtml");
            });

注意すべき点は、Viewsフォルダの構造は唯一重点的に考慮する必要があり、他のフォルダ、例えばControllerやModesの内容は重要ではありません.ControllerとModesの内容はコンパイルされただけなので.ビューが要求されるまでビューの内容としてではなくdllコード.
パブリッシュ時にAreaフォルダをパブリッシュすることに注意し、Areaフォルダの下にあるすべてのviewをパブリッシュする必要があります.