Если у вас зарегистрирован только этот маршрут, то контроллер не будет создан или попадать под этот маршрут.Я предполагаю, что поведение, которое вы наблюдаете, связано с тем, что вы также оставили регистрацию маршрута по умолчанию, которая будет соответствовать запросу /UserProfile
к контроллеру UserProfile
и действию Index
:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Так что удалите этот маршрут по умолчанию, и все будет в порядке.Ваше определение маршрута должно выглядеть так:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"UserProfile",
"UserProfile/{userName}",
new { controller = "UserProfile", action = "Index" },
new { userName = @"[a-zA-Z]+" }
);
}