Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 正确的url编码空格字符_Asp.net Mvc_Urlencode - Fatal编程技术网

Asp.net mvc 正确的url编码空格字符

Asp.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编码器?

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

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

这在VS集成Web服务器上有效,但在Windows Server 2008的IIS7中有一个问题。 如果我有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也不编码,所以它们都被破坏了。