次のように、ルートを使用して MVC アプリケーションをセットアップしようとしています。
- mysite.com/ -> インデックス アクション
- mysite.com/thingID -> CurrentThing アクションへ
- mysite.com/thingID/year -> CurrentThing アクションへ
アクション:public ActionResult CurrentThing(string thingID, int year)
また、ID の有無にかかわらず機能する通常のコントローラー/アクション ルートも必要です。ThingID は文字列です。次のルートが定義されています。
routes.MapRoute(
"Regular",
"{controller}/{action}/{id}",
new { id = UrlParameter.Optional }
);
routes.MapRoute(
"RootSpecificRecord",
"{thingID}/{year}",
new { controller = "Things", action = "CurrentThing", year = DateTime.Now.Year }
);
routes.MapRoute(
"Root",
"",
new { controller = "Things", action = "Index" }
);
これは、mysite.com/id/year に移動するまで正常に機能します。この時点で、最初のルートは ID をコントローラーとして扱い、年をアクションとして扱います。どうすればこれを解決できますか?