Почему маршрутизатор всегда использует значения по умолчанию для параметров маршрута, а не предоставленные? - PullRequest
0 голосов
/ 25 апреля 2018

Что я делаю неправильно, что все мои действительные URL-адреса перенаправляются на HomeController, а недействительные URL-адреса корректно отклоняются.

У меня есть следующие контроллеры:

HomeController
ThisController
ThatController
MyController  

Вот мой RouteConfig:

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                    "StaticRoute", 
                    "My/Index", 
                    new { controller = "This", action = "Index" }

            routes.MapRoute(
                    "Default", 
                    "{controller}/{action}/{id}", 
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }

Все следующие URL-адреса направлены на "HomeController":

/  
/Home  
/Home/Index  
/This  
/This/Index  
/That 

Следующий URL-адрес правильно направлен на «ThisController»:

/My/Index  

Принимая во внимание, что следующие 404 правильно корректируются:

/Home/NotExists  
/This/NotExists  
/His  
/Her/Index  

Похоже, что маршрут по умолчанию всегда использует значения по умолчанию, а не Параметры маршрута. Неужели мое понимание маршрутизатора неверно или я совершил какую-то другую ошибку?

EDIT
Все контроллеры имеют стандартные методы без индекса без параметров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...