次のような RedirectToRoute を介して呼び出すルートがあります。
return this.RedirectToRoute("Super-SuperRoute", new { year = selectedYear });
私も試しました:
return this.RedirectToRoute("Super-SuperRoute", new { controller = "Super", action = "SuperRoute", id = "RouteTopic", year = selectedYear });
global.asax のルートは次のようになります。
routes.MapRoute(
"Super-SuperRoute", // Route name
"Super.mvc/SuperRoute/{year}", // URL with parameters
new { controller = "Super", action = "SuperRoute", id = "RouteTopic" } // Parameter defaults
);
では、なぜ「指定された値と一致するルートがルート テーブルにありません」というエラーが表示されるのでしょうか?
selectedYear の型が var であることがわかりました。int.Parse を使用して int に変換しようとしたときに、selectedYear が実際には null であることに気付きました。これが問題を説明しています。次回は、ブレークポイントでの変数の値にもっと注意を払うと思います:)