Как я могу закодировать кавычки без жалоб Asp.Net? - PullRequest
0 голосов
/ 05 июня 2009

На моем сайте закодированная цитата (% 22) в пути URL вызывает ошибку «Недопустимые символы в пути»

Я хочу указать поисковые URL, например, так:

www.site.com / поиск /% 22Vitamin + C% 22 * ​​1006 *

% 22 - это кодированная кавычка "

Я использую Asp.Net URL Routing, и маршрут указывается так: "search / {searchTerm}"

Когда Context["searchTerm"] извлекается и декодируется, это приведет к приведенному выше примеру: "Витамин + C" [включая кавычки]

Казалось бы, Asp.Net считает, что в URL есть недопустимые символы. Я не понимаю, почему, когда я URLE кодирую текст.

Как я могу кодировать кавычки без жалоб Asp.Net? Многие люди используют кавычки для группировки слов вместе, и я хочу разрешить этот «умный поиск»

Ответы [ 2 ]

1 голос
/ 05 июня 2009

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

0 голосов
/ 05 июня 2009

Проверьте метод HttpServerUtility.UrlEncode

...