Roteamento no ASP.NET MVC, mostrando o nome de usuário na URL
Estou tentando fazer uma rota para que eu possa mostrar o nome de usuário no URL assim:
Aqui está o meu 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 }
);
Aqui está o meu HomeController:
public ActionResult Index(string username = "Test")
{
return View();
}
Primeiro de tudo, o URL não é alterado. Quando eu definirusername = "Test"
dentro do meu route-config, o URL não é alterado.
Segundo, não consigo navegar para meus outros controladores. Se eu mudar o URL parahttp: // localhost123 / Bem-vindo, nada acontece. Ele deve me redirecionar para uma nova página.
O que eu estou fazendo errado aqui?
Se eu alterar a ordem das rotas, posso navegar para outras páginas, mas o nome de usuário não será exibido no URL.
Eu pesquisei no Google e todas as respostas sobre esse assunto dizem que eu deveria usar uma rota como a acima.