Вам нужны два MapRoutes.
Непонятно, подразумевали ли вы «имя пользователя» в качестве фактического имени пользователя или части URL.Поэтому я покажу оба способа:
Метод 1:
Это если ваш путь буквальный: http: \ localhost: 4351 \ username и буквальный путь: http: \ localhost: 4355 \ users\ profile \ username
routes.MapRoute("Route1", "Username", new { controller = "Users", action = "Profile" });
routes.MapRoute("Route2", "Users\Profile\Username", new { controller = "Users", action = "Profile" });
Если имя пользователя подразумевается как фактическое имя пользователя, то сделайте следующее:
Метод 2:
Пример: http: \ localhost:4351 \ mySpecialUsername и http: \ localhost: 4351 \ users \ profile \ mySpecialUsername
routes.MapRoute("Route1", "{Username}", new { controller = "Users", action = "Profile" });
routes.MapRoute("Route2", "Users/Profile/{Username}", new { controller = "Users", action = "Profile" });
Для метода 2 ваши действия в контроллере должны выглядеть следующим образом:
// Example
public ActionResult Profile(string Username)
{
return Content(string.Format("Username: {0}", Username));
}
Надеюсь, чтопомогает!