Есть несколько вещей, на которые я хотел бы указать.
Я заметил, что вы использовали много записей IgnoreRoute для физических файлов.Вам не нужно этого делать, так как каркас ищет физические файлы, соответствующие URL-адресу по умолчанию, прежде чем маршрутизировать его.Вы можете отключить сопоставление физического файла, установив для RouteExistingFiles значение true в коллекции RouteCollection в Global.asax.В этом случае вы этого не сделали.
Во-вторых, как вы его настроили, любой маршрут, кроме / A / {controller}, будет пойман перехватить весь маршрут (все, что начинается с *, этоперехватить все маршруты), которые вы настроили.
Я пробовал эту конфигурацию, и она перехватывает все другие маршруты, кроме упомянутого выше.Однако следует помнить одну вещь: указанная выше конфигурация будет по-прежнему сопоставлять все со следующим типом URL: / A / что-то /, поскольку второй сегмент всегда будет соответствовать заполнителю {controller}.Чтобы сопоставить этот URL-адрес только с контроллером «Задачи», вы можете определить ограничение на маршрут следующим образом:
routes.MapRoute("Pages", "A/{controller}", new { controller = "Tasks", action = "InitPage" }, new {controller="Home"});
В вашей конфигурации перехвата всех маршрутов также есть орфографическая ошибка.action = "DefaultRout" должно быть action = "DefaultRoute"
Надеюсь, это поможет.