Как использовать знак # в качестве параметра url в службе REST WCF - PullRequest
0 голосов
/ 29 октября 2010

У меня есть служба RESTFul WCF с таким URL, как

groups / {groupName} / members

, который возвращает список пользователей, который нормально работаетназвания групп.Но когда я использую groupName со специальным символом (например, #), ничего не возвращается ex.когда url

groups / c # / members

вызывается из клиента, он возвращает только ноль.Я поставил точку останова в сервисном коде, но метод сервиса даже не выполняется. (Точка останова никогда не срабатывает)

Также я попытался использовать url encode для кодирования c # как c% 23, но результат по-прежнемутот же самый.Я пробовал это со встроенным веб-сервером VS 2010 и IIS 7, но результат все тот же.

И я использую .NET 4.0. Любая помощь будет очень признательна

1 Ответ

0 голосов
/ 29 октября 2010

В URL-адресе хеш-код указывает на конец URL-адреса, а за ним следует ссылка на определенную часть страницы, поэтому URL-адрес /groups/c#/members интерпретируется как URL-адрес /groups/c (а затем браузер пытаетсяна странице с именем "/members".

, по сути, вы никогда не должны разрешать использовать # в качестве символа в ваших динамических URL-адресах. Есть причина, по которой люди генерируют постоянные ссылки только с буквенно-цифровыми символами, разделенными черточками, иэто не только для удобочитаемости / SEO. Некоторые символы просто недопустимы. Вам следует обратить внимание на наличие поля постоянной ссылки в вашем приложении, чтобы у групп могло быть имя c#, которое вы отображаете на странице, но также и для URL-версии.имени как c-sharp.

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