Я согласен с @Darin, что вы, возможно, захотите немного больше подумать о своей архитектуре, но я считаю, что эта серия маршрутов подойдет вам:
routes.MapRoute(
"Navigation",
"Navigation/{nav}/{sub}/{subsub}/{id}",
new { controller = "Navigation", action = "Site", nav = "", sub = "", subsub = "", id = UrlParameter.Optional }
);
routes.MapRoute(
"Navigation",
"Navigation/{nav}/{sub}/{subsub}",
new { controller = "Navigation", action = "Site", nav = "", sub = "", subsub = UrlParameter.Optional, id = "" }
);
routes.MapRoute(
"Navigation",
"Navigation/{nav}/{sub}",
new { controller = "Navigation", action = "Site", nav = "", sub = UrlParameter.Optional, subsub = "", id = "" }
);
routes.MapRoute(
"Navigation",
"Navigation/{nav}",
new { controller = "Navigation", action = "Site", nav = UrlParameter.Optional, sub = "", subsub = "", id = "" }
);