Я новичок в MVC и маршрутизации URL-адресов и ищу некоторые рекомендации.
Я бы хотел иметь URL для каждого пользователя в формате:
http://www.example.com/username
Поэтому я добавил следующий маршрут:
routes.MapRoute(
"UserRoute", // Route name
"{username}", // URL
new { controller = "Users", action = "ViewUser", username = UrlParameter.Optional }
);
Что прекрасно работает, если это ПЕРВЫЙ маршрут, но он испортил маршрут по умолчанию {controller}/{action}/{id}
. Теперь, когда я пытаюсь зайти на корневую страницу, он пытается загрузить действие «ViewUser» пользователя UsersController с нулевым параметром (или с «favicon.ico» в качестве параметра).
Если я добавлю свой новый маршрут ПОСЛЕ маршрута по умолчанию, MVC попытается найти контроллер с именем username
и не сможет его найти.
Есть ли способ получить URL вида {username}
, не испортив обычную систему маршрутизации? Возможно, я мог бы написать собственный маршрут для каждого имеющегося у меня контроллера, но он кажется подверженным ошибкам.