Путаница с маршрутами MVC - PullRequest
       17

Путаница с маршрутами MVC

1 голос
/ 18 апреля 2010

В чем проблема ниже?

    routes.MapRoute(
         "Default2", // Route name
         "{controller}/{action}/{id}", // URL with parameters
         new { controller = "Home", action = "Index", id = "test" } // Parameter defaults
     );

    routes.MapRoute(
         "Default1", // Route name
         "{controller}/{action}/{name}", // URL with parameters
         new { controller = "Home", action = "Report", name = "" } // Parameter defaults
     );

Когда я перехожу к / home / index, параметр "id" принимает значение по умолчанию "test", но когда я перехожу к home / report, параметр name имеет значение null.

Короче говоря, если определение маршрута является первым в таблице маршрутов, то параметр принимает значение по умолчанию. Но остальные ниже не делают.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2010

Используйте отладчик Phil Haack Routes .., чтобы получить более четкое представление о том, как ваши маршруты реагируют на разные пути.

скачать

0 голосов
/ 18 апреля 2010

Эти два маршрута {controller}/{action}/{id} и {controller}/{action}/{name} неоднозначны. Он не может различить /home/index/id и /home/report/abc, это всегда первый маршрут в определении маршрута, который будет пойман, потому что во втором случае он думает, что id = "abc".

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