ASP.NET MVCのルーティング設定
2012/03/15
リクエストURLをルーティング設定に従って対象のファイルを実行する。
リクエストURLの割り振り
「Global.asax」に記載されている。
「Global.asax」の中に下記のような記述があるはず。
- routes.MapRoute(
- "Default", // ルート名
- "{controller}/{action}/{id}", // パラメーター付きの URL
- new { controller = "Home", action = "Index", id = UrlParameter.Optional } // パラメーターの既定値
- );
2行目の「Default」は「hoge」でも「test」でも基本的に何でもokらしい。
問題は3行目の「{controller}/{action}/{id}」ってとこ。
リクエストURLが「http://○○○/abc/def/ghi/」とあれば、「abc」が「controller」にあたり「def」が「action」、「ghi」が「id」にあたる。
「controller」は「Views」フォルダ内にあるフォルダを指定。
「action」は指定されたフォルダ内にあるファイル名(拡張子無し)を指定。
「id」は「パラメータ」にあたる。
※「Views」フォルダ内のフォルダってのは固定。
「action」は指定されたフォルダ内にあるファイル名(拡張子無し)を指定。
「id」は「パラメータ」にあたる。
※「Views」フォルダ内のフォルダってのは固定。
リクエストURLが「http://○○○/abc/def/ghi/」の場合は「/Views/abc/def.aspx」でパラメータが「ghi」で実行する。
4行目の「new {~}」ってのはデフォルト値。
「http://○○○/abc/def/ghi/」という指定ではなくて「http://○○○/」とリクエストされた場合、「controller」や「action」を自動でセットする。