Enrutamiento en ASP.NET MVC, mostrando nombre de usuario en URL
Estoy tratando de hacer una ruta para poder mostrar el nombre de usuario en la URL de esta manera:
http: // localhost1234 / john
Aquí está mi routeconfig:
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 }
);
Aquí está mi HomeController:
public ActionResult Index(string username = "Test")
{
return View();
}
En primer lugar, la URL no ha cambiado. Cuando configurousername = "Test"
dentro de mi route-config, la URL no cambia.
En segundo lugar, no puedo navegar a mis otros controladores. Si cambio la URL ahttp: // localhost123 / Bienvenido, no pasa nada. Debería redirigirme a una nueva página.
¿Qué estoy haciendo mal aquí?
Si cambio el orden de las rutas, puedo navegar a otras páginas, pero el nombre de usuario no se muestra en la URL.
Busqué en Google y todas las respuestas sobre este tema dicen que debería usar una ruta como la anterior.