2009-05-25 13 views
2

400だから、IISは、例えば400悪い要求HttpUtility.UrlEncoded URLセグメント

BAD REQUESTをスローします http://u.lasoo.com.au/Offer/ * 9289--750W汎用-ATX12V-パワーSupply-%252449dot99/6355

< --- '*' と '%' は、このエラーの原因となっています。

http://u.lasoo.com.au/Offer/The-Giant-Good-As-Gone-7-Day-Sale/6354が問題なく動作することに注意してください。

任意の文字列を受け入れたMVC URLセグメントに変換する正しい方法は何ですか?

UPDATE:UR1セグメントは元の文字列に似ている必要があります。 Base64エンコーディングは文字列を完全に変換しました。

+0

これを確認してくださいhttp://stackoverflow.com/questions/591694/url-encoded-slash-in-url –

+0

ありがとう、しかしBase64は文字列をあま​​りにも変換します – CVertex

答えて

1

URLに情報を渡す代わりに、getパラメータとして渡すことができます。このように:

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

+1、素晴らしいアドバイス。それは私のために働いた。 –

-2

を取り除くために交換するか、または代替記号文字列を試してみてください「:」、「%」、「*」、「/」 - フォルダ名内の不正な任意のシンボル。彼らはすべてのことを王手に締めているようで、URLルーティングシステムの設計上の弱点であるようです。

+0

これはフォルダ名ではなくルートであるため、文字列置換を行うことが必ずしも最適な解決策ではありません。 –

関連する問題