I am working on an ASP.NET MVC2 project. The problem is when a string which would b开发者_StackOverflow社区e rewritten into URL contains a special character such as backslash or question mark, the URL will be wrong, even if I have encoded it before.
For example:
- I have a product id "p001\2-2".
- I encoded it into "p001%5C2-2"
- The URL
http://domain.com/Product/p001%5C2-2
responds HTTP Error 400 - Bad Request.
How can I get it correct?
Try to use Html.Encode to resolve your backslash. If the backslash is the only 'special' character in your id, you could use Replace("%5C","\").
Have you checked your routingMap? there has to be a route like
Product/{prodictID}
I had a similar problem with %2F
in my URLs. Try appending the nOrmalize flag to your rewriteRule.
Example with normalize flag "O" in bold:
RewriteRule ^(.*)index\.html?$ http://www.yoursite.com/$1 [R=301,L,**O**]
精彩评论