1

私のアプリケーションには、特定のルートを使用するコントローラーとデフォルト ルートを使用するコントローラーがあります。その結果、次のようなものがあります。

//.. other more specific routes
routes.MapRoute(
                "Workout - Specific Workouts by exercise",
                "{userName}/workouts/exercise/{exerciseID}/{exerciseName}",
                new { controller = "Workout", action = "WorkoutsByExercise" }
                );

            routes.MapRoute(
                "Default",                                             
                "{controller}/{action}/{id}",                           
                new { controller = "Home", action = "Index", id = "" } 
            );
            routes.MapRoute(
                "Error",
                "{*catchall}",
                new { controller = "Error", action = "Http404" }
 );

ただし、 ~/Home/SomethingThat DoesntExist のようなものを入力すると、デフォルト ルーターによって取得されるため、キャッチオール ルート ハンドラーに到達することはありません。これは、Phil Haack のルート デバッガーで確認しました。その結果、そのコントローラー/アクションに到達しようとしますが、見つかりません。その見返りに、StructureMap は Application_Error にバブルアップするエラーをスローし、リダイレクトできません (私が試したすべての調査にもかかわらず)。

とにかく、これについて何かありますか、またはすべてのコントローラーとアクションに対して特定のルートを指定する必要がありますか?また、Application_Error() に入ったら、特定のページ/コントローラーにリダイレクトするにはどうすればよいですか?

4

0 に答える 0