2012-01-05 79 views
1

我们已将我们的测试环境之一切换到在IIS7上使用.NET 4。生产使用.NET 2.为什么ASP.NET 4/IIS7 html编码我的查询字符串?

某些URL,如

http://www.example.com/page.aspx?param1=<foo>&param2=<foo> 

没有得到我们的stringindex代码,查找<或>在Request.Url.ToString抓()。为什么?因为我们检查时他们显示为&lt;foo&gt;。这工作在.NET 2.

发生了什么事?

注:格式中没有错误。我的意思是HTML编码。

回答

0

查询字符串中的所有数据都需要进行URL编码以便能够正确解析,因此如果要抓取输入内容,需要URL解码查询字符串。

HttpServerUtility.UrlDecode(Request.QueryString); 

http://msdn.microsoft.com/en-us/library/6196h3wt.aspx

URL编码可确保所有浏览器将正确的URL字符串传递文本。诸如问号(?),&符号(&),斜杠标记(/)和空格之类的字符可能会被某些浏览器截断或损坏。因此,这些字符必须以标记或查询字符串编码,其中字符串可以由浏览器在请求字符串中重新发送。

+1

不,数据正在** HTML **编码,而不是* URL *编码。 – Broam 2012-01-06 14:24:54