2009-05-25 255 views
2

所以,如果有我的应用程序MVC URL URL编码段,IIS会抛出一个错误的请求400错误请求400

例如 http://u.lasoo.com.au/Offer/ * 9289--750W - 通用 - ATX12V规格的电源供应─%252449dot99/6355

< ---在 '*' 和 '%' 是造成此错误。

请注意,http://u.lasoo.com.au/Offer/The-Giant-Good-As-Gone-7-Day-Sale/6354工作正常。

将任意字符串转换为接受的MVC URL段的正确方法是什么?

更新:URl段应该类似于原始字符串。 Base64编码完全转换了字符串。

+0

检查此问题http://stackoverflow.com/questions/591694/url-encoded-slash-in-url – 2009-05-25 13:35:07

+0

谢谢,但Base64转换字符串太多 – CVertex 2009-05-25 13:42:34

回答

1

而不是在url中传递信息,你可以将它作为get参数传递。就像这样:

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

+1,真棒的建议。这对我有效。 – 2009-12-12 06:46:55

-2

尝试使用字符串替换来剔除或替代符号“:”,“%”,“*”,“/” - 文件夹名称中非法的任何符号。他们似乎把所有的东西搞砸了,而且似乎是URL路由系统的一个设计弱点。