К сожалению, маршрутизация ASP.NET в контексте ASP.NET MVC не слишком хорошо работает с произвольным числом сегментов URL, таких как folder1 / folder2 / folderN.Вы можете сделать универсальный маршрут:
...MapRoute(null, "{*folders}",
new { controller = "DirectoryStructure", action = "Parse"}
);
Метод действия DirectoryStructureController.Parse будет выглядеть следующим образом:
public ActionResult Parse(string folders) {...}
Вы можете разделить строку, чтобы определить, какой контент вернутьперенаправить на другое действие или вернуть HttpNotFound.
Обновление
Проблема с подходом, описанным выше, заключается в том, что все ваши URL будут перенаправлены на DirectoryStructureController.Вы можете устранить это, используя префикс, такой как файловая система:
...MapRoute(null, "file-system/{*folders}",
new { controller = "DirectoryStructure", action = "Parse"}
);
Тогда запросы не будут перенаправляться на этот контроллер, если они не имеют префикс / file-system, например:
http://mysite.com/dirA/dirB/dirN/ <-- will not be routed
http://mysite.com/file-system/dirA/dirB/dirN/ <-- will be routed
Обновление2
Я также только что понял, что этот маршрут будет работать только для разрешения входящих URL-адресов.Вы не сможете использовать его для создания исходящего URL.