Asp.net mvc 正确的url编码空格字符
我使用HttpUtility.UrlEncode对路由中使用的任何值进行编码 我已经解决了编码前斜杠的问题。我现在遇到的新问题是空间。空格编码为+ 这在VS集成Web服务器上有效,但在Windows Server 2008的IIS7中有一个问题。 如果我有URLAsp.net mvc 正确的url编码空格字符,asp.net-mvc,urlencode,Asp.net Mvc,Urlencode,我使用HttpUtility.UrlEncode对路由中使用的任何值进行编码 我已经解决了编码前斜杠的问题。我现在遇到的新问题是空间。空格编码为+ 这在VS集成Web服务器上有效,但在Windows Server 2008的IIS7中有一个问题。 如果我有URLhttp://localhost/Home/About/asdas+sdasd 我得到错误404.11-请求包含双转义序列 我知道我可以用“%20”替换空格,但我自己不想关心propper编码。是否有任何可供MVC使用的现成URL编码器?
http://localhost/Home/About/asdas+sdasd
我得到错误404.11-请求包含双转义序列
我知道我可以用“%20”替换空格,但我自己不想关心propper编码。是否有任何可供MVC使用的现成URL编码器?''编码为%20使用
HttpUtility。UrlPathEncode
任何URL编码通常设计用于URL的路径组件,原因是不同的方案在安全列表中具有不同的字符。查找您的库urlencoder,只需在url的路径和上方部分使用它
@HttpUtility.UrlPathEncode(path)
UrlPathEncode只是对Url的路径进行编码,而不是对整个Url进行编码。这可能已经更改,但是UrlPathEncode的文档现在说:
不要使用;仅用于浏览器兼容性。使用System.Web.HttpUtility.UrlEncode(System.String)。
但是,如果使用UrlEncode,仍然会得到编码为+的空格。UrlPathEncode也不编码,所以它们都被破坏了。