2009-11-23 5 views
2

J'ai un cas particulier ici:
Ma méthode d'action accepte un paramètre, ce paramètre devrait être une URL complète (par exemple http://www.somesite.com/article/onesite?hello=whatever&etc=blah). Lorsque vous travaillez avec le vieux asp.net (oh, excusez-moi les gars, je veux dire les formulaires Web) cela fonctionne très bien, mais en utilisant asp.net mvc et en préparant la route requise ("/ myaction/{inputUrl" sans contraintes sur inputUrl) il échoue. Si l'URL a des barres obliques, je reçois une exception "Bad Request". Que devrais-je faire? Dois-je ajouter une contrainte regex sur l'URL transmise pour correspondre à une URL Web? Que pensez-vous cher SO Gus?
Chaîne de requête avec des barres obliques "/" ne fonctionnant pas dans asp.net mvc?

PS: (!-À-dire que je ne peux pas encoder) La ressource sera demandée à partir d'une application iPhone, ce qui signifie, je n'ai aucun contrôle sur l'url à venir

Merci d'avance.

+0

avez-vous essayé de html.encode the querystring avant d'envoyer? – Razzie

+1

Utilisez HttpUtility.UrlEncode –

+0

errr, ouais je voulais dire que :) – Razzie

Répondre

1

Voir cette question URL-encoded slash in URL.

Même UrlEncode n'aidera pas ici. Le comportement change dans MVC2.

+0

J'ai modifié ... vérifiez à nouveau s'il vous plaît! – Galilyou

0

Modifiez votre itinéraire en tant que /myaction/{*inputURL*}. Cela va tout attraper après myaction.

+0

J'ai déjà un itinéraire catch-all défini sur autre chose. Je ne peux pas avoir plus d'un itinéraire attrape-tout. – Galilyou

Questions connexes