Routing in ASP.NET MVC, Anzeigen des Benutzernamens in URL

Im Versuch, eine Route zu erstellen, damit ich den Benutzernamen in der URL wie folgt anzeigen kann:

http: // localhost1234 / john

Hier ist meine Routenkonfiguration:

 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 }
            );

Hier ist mein HomeController:

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

Zunächst wird die URL nicht geändert. Wenn ich @ einstelusername = "Test" in meiner route-config wird die URL nicht geändert.

Zweitens kann ich nicht zu meinen anderen Controllern navigieren. Wenn ich die URL in @ ändehttp: // localhost123 / Welcome, nichts passiert. Es sollte mich auf eine neue Seite weiterleiten.

Was mache ich hier falsch?

Wenn ich die Reihenfolge der Routen ändere, kann ich zu anderen Seiten navigieren, aber der Benutzername wird in der URL nicht angezeigt.

Ich habe gegoogelt und alle Antworten zu diesem Thema besagen, dass ich eine Route wie die oben angegebene verwenden sollte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage