NameValueCollection 用法

来源:互联网 发布:网络综合布线实训总结 编辑:程序博客网 时间:2024/05/22 00:54
 

http://panjunlai.blog.163.com/blog/static/58190301200962232950866/

using System.Collections.Specialized  

int loop1, loop2;
   NameValueCollection coll;
 
   // Load ServerVariable collection into NameValueCollection object.
   coll=Request.ServerVariables;
   // Get names of all keys into a string array.
   String[] arr1 = coll.AllKeys;
   for (loop1 = 0; loop1 < arr1.Length; loop1++)
   {
    Response.Write("Key: " + arr1[loop1] + "<br>");
    String[] arr2=coll.GetValues(arr1[loop1]);
    for (loop2 = 0; loop2 < arr2.Length; loop2++)
    {
     Response.Write("Value " + loop2 + ": " + arr2[loop2] + "<br>");
    }
   }

 

 

Request(item) 在 ASP 中,此方法返回字符串数组。在 ASP .NET 中,它返回 NameValueCollection。
Request.QueryString(item) 在 ASP 中,此方法返回字符串数组。在 ASP .NET 中,它返回 NameValueCollection。
Request.Form(item) 在 ASP 中,此方法返回字符串数组。在 ASP .NET 中,它返回 NameValueCollection。
正如您所见,对于涉及到的所有方法,其变化基本上都相同。
如果访问的 item(项)只包含特定关键字的一个值,您将不必修改自己的代码。但是,如果给定的关键字具有多个值,您将需要使用其它方法返回值的集合。另请注意,Visual Basic .NET 中的集合都是基于 0,而 VBScript 中的集合是基于 1 的。
例如,在 ASP 中,将按下列方式访问 http://localhost/myweb/valuetest.asp?values=10&values=20 请求返回的各个查询字符串值:

在 ASP .NET 中,QueryString 属性返回 NameValueCollection 对象,在检索所需的实际项之前,将需要从该对象中检索 Values 集合。另外需要注意,集合中的第一项是使用 0 而非 1 索引进行检索的:

下列代码在 ASP 和 ASP .NET 中的运行结果相同:
<%
   '输出“10”和“20”
   Response.Write (Request.QueryString("values"))
%>

AllKeys属性,取得所有关键字名称。

 


====以下是一个取得IP和操作系统以及浏览器的例子=========

private string getIp()
{/*穿过代理服务器取远程用户真实IP地址:*/
if(Request.ServerVariables["HTTP_VIA"]!=null)
return Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
else
return Request.ServerVariables["REMOTE_ADDR"].ToString();
}
Label2.Text =getIp();
HttpBrowserCapabilities bc = new HttpBrowserCapabilities();
bc = Request.Browser;
string xitong ="你的操作系统为";
Label3.Text=xitong+bc.Platform + " 浏览器类型:" + bc.Type;

原创粉丝点击