Это больше открытый вопрос. Что вы думаете о строках запроса в URL? При создании сайтов в ASP.NET MVC вы тратите много времени на обдумывание и создание чистых URL-адресов только для того, чтобы они были разбиты при первом использовании строк запроса, особенно в форме поиска.
Например, недавно я сделал довольно простую форму поиска с полудюжиной текстовых полей и двумя или тремя списками флажков и селекций. Это привело к строке запроса ниже при отправке
countrylcid=2057&State=England&StateId=46&Where=&DateFrom=&DateTo=&Tags=&Keywords=&Types
=1&Types=0&Types=2&Types=3&Types=4&Types=5&Costs=0.0-9.99&Costs=10.00-29.99&Costs=30.00-59.99&Costs=60.00-10000.00
Прекрасно, я думаю, вы согласитесь. Половина полей не содержала информации, и входные данные списка очень многословны.
Некоторое время назад я реализовал простое решение для подкачки страниц, которое выдает URL, такой как
www.yourdomain.com/browse/filter-on/page-1/perpage-50/
Это использовало универсальный маршрут, чтобы получить то, что по существу является строкой запроса замены после части фильтрации. Работает довольно хорошо, но не работает при отправке формы.
Хотелось бы услышать, какие другие решения люди придумали? Есть много статей по чистым URL-адресам, но они предназначены для разработчиков asp.net, создающих базовые релакс-ссылки, которые MVC рассмотрел. Я наполовину подумываю о погружении в привязку модели, чтобы найти правильное решение в этом направлении. С вышеупомянутым соглашением большая строка запроса может быть переписана как:
filter-on/countrylcid-2057/state-England/stateId-46/types-{1,0,2,3,4,5}/costs-{0.0-9.99,10.00-29.99,30.00-59.99,60.00-10000.00}/
Стоит ли это усилий?
Спасибо