Маршрутизация в ASP.NET MVC с отображением имени пользователя в URL

Я пытаюсь создать маршрут, чтобы я мог показать имя пользователя в URL, как это:

Http: // localhost1234 / джон

Вот мой маршрут конфигурации:

 routes.MapRoute(
                name: "users", // Route name
                url: "{username}", // URL with parameters
                defaults: new { controller = "Home", action = "Index", username = "" } // Parameter defaults
            );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

Вот мой HomeController:

 public ActionResult Index(string username = "Test")
 {
   return View();
  }

Прежде всего, URL не изменен. Когда я установилusername = "Test" внутри моего route-config, URL не изменился.

Во-вторых, я не могу перейти к другим моим контроллерам. Если я изменю URL наHttp: // localhost123 / Добро пожаловать, Ничего не произошло. Это должно перенаправить меня на новую страницу.

Что я здесь не так делаю?

Если я изменю порядок маршрутов, я могу перейти на другие страницы, но имя пользователя не отображается в URL.

Я погуглил, и все ответы на эту тему говорят, что я должен использовать маршрут, подобный указанному выше.

Ответы на вопрос(2)

Ваш ответ на вопрос