ASP.NET:URL中的空间

ASP.NET:URL中的空间,asp.net,url-rewriting,request.querystring,Asp.net,Url Rewriting,Request.querystring,我有一个重写规则: <rule name="rule 18X" stopProcessing="true"> <match url="^cheap-calls/(.+)/(.+)/$" ignoreCase="true" /> <action type="Rewrite" url="CheapCalls.asp?calltype={R:1}&amp;country={R:2}" /> </rule> 当我访问/cheap cal

我有一个重写规则:

<rule name="rule 18X" stopProcessing="true">
 <match url="^cheap-calls/(.+)/(.+)/$" ignoreCase="true" />
 <action type="Rewrite" url="CheapCalls.asp?calltype={R:1}&amp;country={R:2}"  />
</rule>


当我访问
/cheap calls/landline/HongKong%20hongkong/
并尝试从url
请求中获取国家/地区值时。查询字符串(“国家”)
只会给我
HongKong
。为什么它会删除空格?

我猜是因为QueryString中可能会注入脚本,所以它会删除这些字符。如果它准确地解析了querystring中的所有内容,您可能会在querystring中输入恶意脚本,并让服务器对其进行处理。@dgarbacz,感谢您的响应。URL中是否允许%20?我只找到了
,但这对我不起作用。这个问题显示了如何替换%20,它不是您想要的,但可能会引导您朝正确的方向前进