ASP.NET MVC でのルート定義について、様々なパターンを紹介している。 [ASP.NET MVC]ルート定義を追加するには?[3.5、4、C#、VB] - @IT 10 行でズバリ!! URL の書き換えを行う (C#) - msdn ハマりやすいポイントは、URL ルーティングは登録順に判断されるので、汎用的な定義を一番初めに定義してしまうと、それにマッチしてしまい、以降の定義はすべて無視されてしまう。 また、パラメータに正規表現で制約をかけるときには注意?が必要 (msdn の記事にて触れている) 。 routes.MapRoute( "Reports", "Reports/{id}", new { controller = "Reports", action = "Details", id = @"\d{4}" } ); 4 ケタの数値という制限を付けようとしても、これでは駄目である。正規表現は、MapRoute の 第 4 引数 で定義しなければならない。 routes.MapRoute( "Reports", "Reports/{id}", new { controller = "Reports", action = "Details" }, new { id = @"\d{4}" } ); これで OK なのだが、実際にこの制約以外のアクセスをたたくと、エラーが発生する。 URL リライトの時点で弾くか、プログラム内でパラメータをチェックするのかは実装方法によって様々だろうが、URL リライトで弾く場合は、エラー画面に飛ぶということは覚えておかなければならない。 なお、ASP.NET WEbフォームを使ったアプリケーションでも、ASP.NET 4.0 から URL のルーティングがサポートされている。 ASP.NET 4 WebフォームでURLルーティング(VS 2010&.NET 4シリーズ) - @IT Web フォームの場合でも、...