【发布时间】:2012-10-17 05:17:09
【问题描述】:
我正在处理一个页面,其中有如下网址:
/目录/公司/制造商
使用一些重写规则,这会被重写
使用 /directory/company/dunkin%26donuts/ 进行测试
一些制造商的名称中带有 & 符号。所以我想我可以用%26 替换与号。但是,当我调试代码并将鼠标悬停在Request.QueryString 上时,它显示{qq=company&manf=dunkin&donuts&cond=} 和Request.QueryString["manf"] 给了我'dunkin'
如果我使用 %24 ($) 而不是 & 符号,则将鼠标悬停在 Request.QueryString 上会给我
{qs=company&manf=dunkin%24donuts&cond=} 和 Request.QueryString["manf"] 给了我 'dunkin$donuts'
我不明白这里的不同行为。为什么在您实际请求特定密钥之前,似乎与符号的 url 编码值已被解码,但另一个 url 编码字符(如美元符号)仅在您实际请求该特定密钥后才被解码?
这是最近的变化吗?我一直认为Request.QueryString[key] 没有先解码就返回了实际文本。还是跟url重写有关系?
【问题讨论】:
标签: c# asp.net c#-4.0 url url-rewriting