2010-10-29 4 views
0

J'ai un service RESTFul WCF avec une url aime cetteComment utiliser signe # comme paramètre url dans REST service WCF

groupes/{groupName}/membres

qui renvoie une liste d'utilisateurs Cela fonctionne bien pour les noms de groupe normaux. Mais quand j'utilise un groupName avec un caractère spécial (comme #) rien n'est retourné ex. lorsque les groupes url

/C#/membres

est appelé à partir du client, il renvoie uniquement null. Je mets un point d'arrêt dans le code de service mais la méthode du service n'est même pas exécutée (le point de rupture n'est jamais atteint)

J'ai aussi essayé d'utiliser l'encodage url pour encoder C# comme c% 23 mais le résultat est toujours le même. J'ai essayé ceci avec le serveur Web intégré de VS 2010 et IIS 7 mais le résultat est toujours le même.

Je suis en utilisant .NET 4.0 Toute aide sera vraiment apprécié

Répondre

0

Dans une URL du hachage indique la fin de l'url et ce qui suit est une référence à une partie spécifique de la page, de sorte que le url /groups/c#/members est interprété comme l'URL /groups/c (et le navigateur essaie de vous emmener à la href sur la page nommée "/members".

Fondamentalement, vous ne devriez jamais permettre # comme un personnage Il y a une raison pour les gens de votre URL dynamique. générer permaliens avec seulement des caractères alphanumériques séparés par des tirets, et ce n'est pas juste pour la lisibilité/SE O. Certains caractères tout simplement ne sont pas autorisés. Vous devriez chercher à avoir un champ permalien dans votre application afin que les groupes puissent avoir un nom de c# que vous affichez sur la page, mais aussi une version conviviale du nom comme c-sharp.

+0

L'encodage de l'URL de la chaîne est un bon essai, mais le navigateur traite la version codée, et la version non-codée exactement la même, en ce qui concerne le comportement que je décris. – Jeremy

Questions connexes