我使用HttpUtility.UrlEncode对路径中使用的任何值进行编码。
我已经解决了编码正斜杠的问题。我现在遇到的新问题是空格。空格编码为+。
这适用于VS集成的Web服务器,但我在Windows Server 2008上的IIS7中遇到了问题。
如果我有网址http://localhost/Home/About/asdas+sdasd
我收到错误404.11 - 请求包含双转义序列。
我知道我可以用“%20”替换空格,但我不想关心自己的编码器编码。有没有准备好在那里使用UrlEncoder for MVC?
答案 0 :(得分:20)
''编码为%20使用HttpUtility.UrlPathEncode
。
答案 1 :(得分:0)
任何URL编码通常设计用于处理网址的路径组件,原因是因为不同的方案在安全列表中具有不同的字符。查找你的库urlencoder,只需在url的路径和上面部分使用它。
答案 2 :(得分:0)
@HttpUtility.UrlPathEncode(path)
UrlPathEncode只是对Url的路径进行编码,而不是对整个Url进行编码。