ロジックを小さなコントローラーにリファクタリングして、依存関係が多すぎる問題を整理し、独自のルート マッピングを使用してルーティングの問題を処理します。
タプルを含む RouteDefinition クラスを使用できます (前にハッシュと言いましたが、2 つ以上のパラメーターが必要になると考えました)。
public static class RouteDefinitions
{
const List<Tuple<string,string,string> AdminRoutes = new List<Tuple<string,string,string>> {
Tuple.Create("fooroute", //route
"foocontroller", //corresponding controller
"fooaction"), //corresponding action
Tuple.Create("barroute", "barcontroller","baraction")
};
public static void AddRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
foreach(var adminRoute in AdminRoutes)
routes.MapRoute(adminRoute.Item1, string.Format("Admin/{0}", adminRoute.Item1) , new { controller = adminRoute.Item2, action = adminRoute.Item3 });
}
}
そして、あなたのApplication_Start()
呼び出しでは、そのような
RouteDefinitions.AddRoutes(RouteTable.Routes);