通过 URL 重写,反斜杠可以在 URL 中正确编码吗?
我正在开发一个 ASP.NET MVC2 项目。问题是,当要重写为 URL 的字符串包含特殊字符(例如反斜杠或问号)时,即使我之前对其进行了编码,URL 也会出错。
例如:
- 我有一个产品 ID“p001\2-2”。
- 我将其编码为“p001%5C2-2”
- URL
http://domain.com/Product/p001%5C2-2
响应 HTTP 错误 400 - 错误请求。
我怎样才能得到正确的结果?
I am working on an ASP.NET MVC2 project. The problem is when a string which would be 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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试使用 Html.Encode 来解析您的反斜杠。
如果反斜杠是您的 ID 中唯一的“特殊”字符,您可以使用 Replace("%5C","\")。
你检查过你的路由映射吗?必须有一条像这样的路线
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
我的网址中的
%2F
也遇到了类似的问题。尝试将 nOrmalize 标志附加到您的 rewriteRule 中。规范化标志“O”以粗体显示的示例:
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: