Как использовать персонализированные URL в приложении asp.net mvc - PullRequest
1 голос
/ 26 мая 2010

Я работаю над сайтом, на котором многие пользователи могут создать свою учетную запись и иметь персональную страницу.Я хочу предоставить им твиттер, такой как URL, для доступа к их страницам, например, www.mysite.com/smith или www.mysite.com/john.Я использую asp.net MVC 1.0.Я понимаю, что могу добавить маршруты в файл global.asax, но не могу понять, как добавить маршрут, который будет работать для таких URL.

Пожалуйста, предоставьте некоторую помощь / предложения.Спасибо.

Ответы [ 2 ]

2 голосов
/ 26 мая 2010

Ну, вы всегда можете добавить это как последний маршрут:

routes.MapRoute(
    "Default",
    "{profile}",
    new { controller = "Profile", action = "Index" }
);

но это сделает ваше приложение более громоздким. В частности, вам придется проверять имена пользователей, чтобы они не конфликтовали с остальными вашими маршрутами (например, /info, '/ admin' и т. Д.).

Я рекомендую переместить страницу персонализации на один уровень глубже:

routes.MapRoute(
    "Default",
    "profile/{username}",
    new { controller = "Profile", action = "Index" }
);
0 голосов
/ 26 мая 2010

Со своей стороны, я бы использовал следующее, расположенное после всех других маршрутов, но, скорее, ловушка:

routes.MapRoute( 
    "PrettyProfile", 
    "{username}", 
    new { controller = "Profile", action = "Index" } 
); 

Как говорит Антон, вы должны ограничить свои идентификаторы пользователей, чтобы они не конфликтовали с другими вашими маршрутами.

...