Оба URL работают, потому что именно так в Global.asax определен маршрут по умолчанию:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Это означает, что все /
, /Home
и /Home/Index
попадут на HomeController/Index
действие.Так что на самом деле, когда вы запрашиваете /
, выполняется точно такое же действие.
Вы можете изменить его следующим образом:
routes.MapRoute(
"Default",
"{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Конечно, выполняя это единственный контроллер идействие, которое вы когда-либо сможете выполнить в своем приложении, будет действием HomeController и Index.Никакие другие действия или контроллеры никогда не будут доступны, так как вы не предоставляете никаких средств для их указания в URL.Поэтому я бы оставил маршруты по умолчанию как есть, потому что они позволяют обрабатывать 99% случаев, если у вас нет особых требований.