2009-04-30 8 views
2

J'ai actuellement cet itinéraire défini (entre autres): "{contrôleur}/{action}/{id}/{désignation}" étant:espace dans le routage donne 404

  • "id" ma clé primaire
  • "désignation" utilisée uniquement pour le référencement et non prise en compte.

maintenant mon problème est: œuvres « http://server/Home/Index/1/teste » mais « http://server/Home/Index/1/teste » avec un espace dans la fin ne pas.

IIS me donne un et mvc ne démarre même pas pour cette demande.

Quelqu'un at-il déjà eu ce comportement? Quelque chose que j'ai besoin de changer? Meilleures salutations

Répondre

0

L'espace est un caractère invalide dans les URL. Le navigateur ne devrait même pas l'envoyer.

Si vous appelez cela dans le code, essayez d'utiliser HttpUtility.UrlEncode(path) avant d'envoyer/de rediriger.

2

L'espace ne peut pas être utilisé comme caractère de texte brut dans une URL. Vous devez encoder comme:

%20

Par ex

http://www.testDomain.com/test%20page 
+4

Le problème principal n'est pas si l'espace est codé mais si l'espace apparaît à la fin de l'URL. pour la même route, Contrôleur Accueil, Action Foo http: // serveur/Accueil/Foo/bar% 20bar et http: // serveur/Accueil/Foo/bar% 20bar/fonctionne http: // serveur/Accueil/Foo/bar% 20bar ou http: // serveur/Accueil/Foo/bar% 20bar/non! C'est la question principale. Pourquoi l'espace% 20 ou "" n'est pas autorisé à la fin d'une URL. –

Questions connexes