Я создаю веб-сайт asp.net mvc, после входа в систему пользователь может получить доступ к страницам раздела своего профиля, и в настоящее время URL этих страниц похож на www.example.com/profile, я хочу, чтобы URL был такимwww.example.com/USERNAME
Как написать этот маршрут, который будет работать только на странице профиля при входе пользователя?
Обновление:
основываясь на ответах ниже, я написал это так:
routes.MapRoute(
"AccountSettins",
"AccountSettings",
new { controller = "AccountSettings", action = "Index" }
);
routes.MapRoute(
"myRouteName",
"{username}",
new { controller = "Profile", action = "Index" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
и контроллер:
[Authorize]
public class ProfileController : BaseController
{
//
// GET: /Profile/
public ActionResult Index(string username= "")
{ ...
Но теперь, после входа пользователя в систему и его имени «xyz» он можетперейдите на www.example.com/xyz, и это приведет к странице профиля, но если он также напишет URL www.example.com/abc, он перейдет на ту же страницу профиля, что обычно странно с точки зрения пользователя.посмотреть, как решить эту проблему?