MVC распознает разницу между "{UserID}" и "{id}", поэтому, если у вас будет маршрут с только "{UserID}" в URL, вам нужно поместить его первым в списке, в противном случае никогда не получит удар. И убедитесь, что значение по умолчанию включает в себя «id», так как он будет постоянно зацикливаться на «UserDetails», если только идентификатор ссылки по умолчанию не сопоставляется с UserID. Я нашел этот формат работает для меня:
routes.MapRoute("UserDetails",
"{UserID}",
new { controller = "Users", action = "UserDetail", id = "" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "LogOn", id = "" } // Parameter defaults
);