Area自体を追加するのは至極簡単。Areaを追加したいプロジェクトを右クリック→Add→Areaで下図のダイアログが表示されるので名前を適当に入力してOK。
入力した名前のフォルダがAreasフォルダの下に下図のようにできる。
初期状態でControllers, Models, Viewsとフォルダがあるが、Viewsを除いてすべて空っぽだ。注目したいのはSandboxAreaRegistration.csだ。このクラスで追加したArea用のAreaNameとRouteを設定する。
最後に、とても重要なのだが、Global.asaxに下記のコードを追加する必要がある。
public static void RegisterRoutes(RouteCollection routes) { AreaRegistration.RegisterAllAreas(); }
このコードを忘れると追加したAreaのRouteが登録されないので注意しよう。AreaRegistration.RegisterAllAreas()が呼ばれるとフレームワークがAreaRegistrationを継承したクラスがないかを探し回ってRouteを登録していくという寸法だ。以上でAreaの追加は完了だ。適当なControllerを新しく追加したAreaに登録し下記のようにアクセスしてみよう。
従来のリンク
http://www.my-clip.net/Clip/Index/
新しいAreaへのリンク
http://www.my-clip.net/Sandbox/MrGengo/Index/
次回はArea間のActionLinkなどについて解説する。