【发布时间】:2013-05-18 22:09:17
【问题描述】:
我只想从 url 获取完整的查询字符串。
Request.QueryString
Request.ServerVariables["QUERY_STRING"]
我可以使用其中任何一种吗? 首选哪种方式?
谢谢
【问题讨论】:
我只想从 url 获取完整的查询字符串。
Request.QueryString
Request.ServerVariables["QUERY_STRING"]
我可以使用其中任何一种吗? 首选哪种方式?
谢谢
【问题讨论】:
Request.ServerVariables["QUERY_STRING"] 包含整个查询字符串,即问号之后但片段标识符# 之前的所有内容
http://msdn.microsoft.com/en-us/library/ms525396(v=vs.90).aspx
Request.QueryString 包含一个允许您获取单个元素的集合。
使用以下语法:
Request.QueryString(variable)[(index)|.Count]
此集合是从 ServerVariables 集合生成的。此集合中的值会自动进行 UrlDecoded。
因此,如果您调用Request.QueryString.ToString(),它本质上与Request.ServerVariables["QUERY_STRING"] 相同,但带有UrlDecoding。
所以你应该使用它,因为它更安全。
Request.QueryString(variable)[(index)|.Count]
http://msdn.microsoft.com/en-us/library/ms524784(v=vs.90).aspx
【讨论】:
http://msdn.microsoft.com/en-us/library/ms524784(v=vs.90).aspx
QueryString 集合是 ServerVariables 集合中 QUERY_STRING 变量的解析版本。它使您能够按名称检索 QUERY_STRING 变量。 Request.QueryString(parameter) 的值是 QUERY_STRING 中出现的所有参数值的数组。您可以通过调用 Request.QueryString(parameter).Count 来确定参数值的数量。如果一个变量没有与之关联的多个数据集,则计数为 1。如果未找到该变量,则计数为 0。
要在多个数据集中的一个中引用 QueryString 变量,您需要为索引指定一个值。 index 参数可以是 1 到 Request.QueryString(variable).Count 之间的任何值。如果您引用多个 QueryString 变量之一而不指定索引值,则数据将作为逗号分隔的字符串返回。
当你在Request.QueryString中使用参数时,服务器会解析发送给请求的参数并返回指定的数据。如果您的应用程序需要未解析的 QueryString 数据,您可以通过不带任何参数调用 Request.QueryString 来检索它。
【讨论】:
如果您调用 Request.QueryString["Whatever"] ,则会自动执行 UrlDecode。见does Request.Querystring automatically url decode a string?。所以要小心你的空格、%20、& 等。
问候, 迈克尔
【讨论】: