Я работаю над веб-сайтом, в котором многие пользователи могут создать свою учетную запись и иметь персонализированную страницу. Я хочу предоставить им Твиттер как URL для доступа к их страницам, например, www.mysite.com/smith или www.mysite.com/john. Я использую asp.net mvc 1.0. У меня есть понимание, что я могу добавить маршруты к global.asax файлу, но я не могу выяснить, как добавить маршрут, который будет работать на такие URL.
Обеспечьте некоторую справку / предложения.Спасибо.
Ну, вы всегда можете добавить это в качестве последнего пути:
routes.MapRoute(
"Default",
"{profile}",
new { controller = "Profile", action = "Index" }
);
но это сделает ваше приложение более громоздким. В частности, вам придется проверять имена пользователей, чтобы они не пересекались с остальными маршрутами (например, /info
, '/admin' и т.д.).
Что я рекомендую, так это переместить страницу персонализации на один уровень глубже:
routes.MapRoute(
"Default",
"profile/{username}",
new { controller = "Profile", action = "Index" }
);
Со своей стороны, я бы использовал следующие, помещенные после всех других маршрутов, но для общего доступа:
routes.MapRoute(
"PrettyProfile",
"{username}",
new { controller = "Profile", action = "Index" }
);
Как говорит Антон, вы должны ограничить свои идентификаторы пользователя, чтобы они не конфликтовали с другими маршруты.