2009-07-31 4 views
0

Je viens de mettre à jour mon ancien système d'URL basé sur le mappage générique pour utiliser System.Web.Routing. Avant, j'étais capable de demander l'URL /Service/GetItems<My.Full.Item.Type>, qui a été analysée de l'autre côté et retourné exactement ce que vous attendez. C'était propre.Chevrons dans les URL de routage avec WebForms 3.5

Maintenant avec le routage sur, toute demande avec un < ou> me renvoie le contenu de '/' au lieu de la page que je voulais. Même si je les code pour% 3C et% 3E, je suis redirigé vers la racine, indépendamment de ce que dit le reste de l'URL. Je voudrais que je n'aie pas à passer par mon application en changeant toutes les instances de références génériques intuitives à la solution improvisée que j'ai imaginée: /Service/GetItems/T=My.Full.Item.Type. Pas aussi bien non plus.

Merci à tous!

Répondre

2

Il semblerait que vous rencontriez des problèmes de caractères restreints avec des URL. Notez que cela n'a rien à voir avec le routage mais avec ASP.NET bloquant certains caractères dans l'URL. Pourquoi cela a-t-il fonctionné auparavant avec la réécriture d'adresses URL? Très probablement parce que l'URL a été réécrite pour avoir ces caractères dans la chaîne de requête avant qu'elle ne soit transmise à ASP.NET.

Il y a des choses que vous pouvez essayer.

Il y a un paramètre de Registre pour permettre des caractères restreints http://support.microsoft.com/kb/820129

Voici un autre article de soutien qui est lié: http://support.microsoft.com/default.aspx?scid=kb;EN-US;826437

Dans ASP.NET 4, nous prévoyons de rendre ce beaucoup plus facile à configurer.

+0

Merci beaucoup pour cette réponse, Phil! C'est génial de connaître le raisonnement derrière ce qui se passe, et je vais examiner ces articles pour trouver une solution finale. Merci encore. – tags2k