11

我使用 HttpUtility.UrlEncode 对路由中使用的任何值进行编码。

我已经解决了编码正斜杠的问题。我现在遇到的新问题是空格。空格被编码为 + 。

这适用于 VS 集成 Web 服务器,但我在 Windows Server 2008 上的 IIS7 中遇到了问题。如果我有 URLhttp://localhost/Home/About/asdas+sdasd

我收到错误 404.11 - 请求包含双转义序列。

我知道我可以用“%20”替换空格,但我不想关心自己的propper编码。有没有准备好将 UrlEncoder 用于 MVC 的地方?

4

3 回答 3

20

' ' 编码为 %20 使用HttpUtility.UrlPathEncode

于 2009-11-01T05:27:30.713 回答
0

任何 URL 编码通常都设计用于处理 url 的路径组件,原因是不同的方案在安全列表中具有不同的字符。查找您的库 urlencoder 并在 url 的路径和上方部分中使用它。

于 2009-11-01T05:30:03.147 回答
0
@HttpUtility.UrlPathEncode(path)

UrlPathEncode 只是对 Url 的路径进行编码,而不是对整个 Url 进行编码。

于 2015-02-11T15:42:26.730 回答