Несколько параметров маршрута с чистыми URL - PullRequest
2 голосов
/ 06 февраля 2009

Я работаю с Digg-клоном в ASP.NET MVC, чтобы лучше учить себя ASP.NET MVC. Я смотрел на то, как StackOverflow обрабатывает маршрутизацию при передаче таких вещей, как сортировки, и я думаю, я думал, что весь смысл использования чистых URL-адресов заключается в том, что у вас нет таких вещей, как? Sort = blah в конце вашего URL для SEO.

Есть ли рекомендуемый способ включения множества, возможно, необязательных параметров в ваши URL, при этом сохраняя их чистыми. У меня было несколько идей, и я хотел бы получить обратную связь.

Вариант 1:

Использовать подстановочные знаки (гадость)

Вариант 2:

Добавьте сортировку в начало URL-адреса, поскольку он имеет наибольшее покрытие и ВСЕГДА применяется при просмотре историй. Пример (с использованием StackOverflow)

Вместо того, чтобы иметь? Sort = featured ...

https://stackoverflow.com/featured/tagged/asp.net-mvc
https://stackoverflow.com/new/tagged/c#
https://stackoverflow.com/tagged/asp.net (по умолчанию)

В любом случае - я не могу думать о каких-либо других способах сделать это.

Ответы [ 3 ]

3 голосов
/ 06 февраля 2009

Подожди, переполнение стека использует для сортировки используют параметры строки запроса, например ::

https://stackoverflow.com/questions/518812?sort=oldest#sort-top

/ отличается. В этом случае вы контролируете, какие записи возвращаются, а не только как они сортируются.

URL-адреса описывают ресурсы. Параметры строки запроса описывают, как представлены ресурсы. В общем:

  • Фрагменты, которые описывают характер возвращаемых данных, должны быть частью URL.
  • Фрагменты, описывающие способ представления этих данных, должны быть параметрами строки запроса.

Наличие параметров строки запроса не повредит вашему SEO.

2 голосов
/ 06 февраля 2009

Вы должны пойти с методом, который работает лучше всего для вас. Некоторые вещи для рассмотрения:

  • ремонтопригодность: как вы будете поддерживать структуру ссылок в течение всего срока службы. Как будет кто-то еще?
  • удобочитаемость / отладка: как вы будете отлаживать ссылки? Поможет ли вам естественный язык? (помогает мне).
1 голос
/ 06 февраля 2009

Допустим, у вас есть контроллер под названием StoryController, который показывает все ваши сообщения. Вы можете сделать свои маршруты похожими на это:

routes.MapRoute("FeatureTagged", "feature/tagged/{tag}", new { 
       controller = "Story", action = "ShowFeaturedByTag" });
routes.MapRoute("NewTagged", "new/tagged/{tag}", new { 
       controller = "Story", action = "ShowNewByTag" });

Кстати, уже есть ASP.NET MVC клон digg. Он называется Kigg: http://www.codeplex.com/Kigg и работает на сайте с именем DotNetShoutout

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