2009-05-25 13 views
2

Wenn es also URL codierten Segmente in meiner apps MVC-URL ist, IIS wirft einen BAD REQUEST 400Bad Anfrage 400 für HttpUtility.UrlEncoded URL Segmente

z.B. http://u.lasoo.com.au/Offer/ * 9289--750W-generic-ATX12V-Power-Speise-% 252449dot99/6355

< --- die '*' und '%' sind, verursacht dies Fehler.

Beachten Sie, dass http://u.lasoo.com.au/Offer/The-Giant-Good-As-Gone-7-Day-Sale/6354 funktioniert.

Was ist der richtige Weg, um eine beliebige Zeichenfolge in ein akzeptiertes MVC-URL-Segment umzuwandeln?

UPDATE: Das URl-Segment sollte der ursprünglichen Zeichenfolge ähneln. Die Base64-Codierung hat die Zeichenfolge vollständig transformiert.

+0

überprüfen Sie diese http://stackoverflow.com/questions/591694/url-encoded-slash-in-url –

+0

Danke, aber Base64 verwandelt die Zeichenfolge zu viel – CVertex

Antwort

1

Anstatt die Informationen in der URL zu übergeben, können Sie sie als get-Parameter übergeben. Wie folgt aus:

http://u.lasoo.com.au/Offer/?id=*9289--750W-Generic-ATX12V-Power-Supply-%252449dot99/6355 
+0

+1, Awesome Rat. Das hat für mich funktioniert. –

-2

versuchen, eine Zeichenfolge ersetzen abzustreifen oder Ersatzsymbole „:“, „%“, „*“, „/“ - alle Symbole illegal in einem Ordnernamen. Sie scheinen alles königlich zu vermasseln und scheinen eine Designschwäche des URL-Routing-Systems zu sein.

+0

Hier geht es nicht um die Ordnernamen, sondern um die Routen. Eine String-Ersetzung wäre daher nicht unbedingt die beste Lösung. –