我只想从网址获取完整的查询字符串。
Request.QueryString
Request.ServerVariables["QUERY_STRING"]
我可以使用其中任何一种吗? 哪种方式更受欢迎?
由于
答案 0 :(得分:6)
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
答案 1 :(得分:1)
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指定值。 index参数可以是1和Request.QueryString(variable).Count之间的任何值。如果引用多个QueryString变量之一而未指定index的值,则数据将以逗号分隔的字符串形式返回。
当您使用Request.QueryString参数时,服务器会解析发送给请求的参数并返回指定的数据。如果您的应用程序需要未解析的QueryString数据,您可以通过调用Request.QueryString而不使用任何参数来检索它。
答案 2 :(得分:0)
如果您调用Request.QueryString [“Whatever”],则会自动执行UrlDecode。见does Request.Querystring automatically url decode a string?。所以要小心你的空格,%20,&符号等。
此致 迈克尔