Твиттер как маршрутизация URL в asp.net MVC? - PullRequest
0 голосов
/ 23 августа 2010

Я видел в твиттере, я могу получить страницу просмотра пользователя, просто набрав в URL ссылку http://twitter.com/pandiyachendur.Как сделать то же самое с asp.net mvc?Я не знаю, как твиттер это делает?

Ответы [ 2 ]

3 голосов
/ 23 августа 2010

Вы должны быть осторожны с порядком, в котором вы объявляете свои маршруты. Поскольку в URL-адресе /{username} нет общего элемента, вам необходимо объявить его как последний «универсальный» маршрут после всех ваших конкретных маршрутов.

RouteTable.Routes.MapRoute(null, "LogIn", new { controller = "Account", action = "LogIn" });
RouteTable.Routes.MapRoute(null, "LogOut", new { controller = "Account", action = "LogOut" });
// ... other routes go here ...

// Final catch-all route to map /{username} to the Account.Details action.
RouteTable.Routes.MapRoute(null, "{id}", new { controller = "Account", action = "Details" });

Стоит также помнить, что вам нужно расширить проверку имен пользователей, чтобы люди не могли выбирать имена, конфликтующие с конкретными маршрутами (например, Вход ).

1 голос
/ 23 августа 2010

Я предполагаю, что у них есть какое-то регулярное исключение, которое проверяет запрос, чтобы увидеть, соответствует ли оно чему-то, что может быть профилем пользователя, а затем передает этот запрос соответствующему действию контроллера.

Они, вероятно, могли бы сначала перечислить все исключения - статические маршруты, например "/ invitations", а затем передать все остальное действию контроллера по умолчанию, которое пытается отобразить страницу пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...