当在浏览器地址栏中输入一个网址,例如输入网址http://www.huiyaosoft.com/news.aspx?id=1,此过程可描述为客户端向Web服务器发送了一个Web请求,其中id将作为参数传递给Web服务器,那么这个请求将由谁来处理?在Web服务器端如何获得id的值呢?
这个请求将由服务器上名为demo.aspx的asp.net页面处理。打开demo.aspx.cs文件,在Page_Load()方法中加入以下代码,其中行1的目的是先判断参数中是否存在id,如果存在再读取它的值。
C# Code | |
1. | if(Request.QueryString["id"]!=null) |
2. | string id = Request.QueryString["id"] |
通过demo.aspx?id=1这种方式传递参数的方式称之为Get方式,与之对应的是Post方式,即通过form表达提交,如下所示:
Html | |
1. | <form name="frmPagesEdit" id="frmPagesEdit" |
2. | action="../ajaxedemo.ashx" method="post"> |
此时,不能通过Request.QueryString[]获得值,而需通过Request.Form[]获得值。
如果不清楚页面传递了哪些参数,可通过foreach遍历方式读取所有参数,然后再分析。
下面的代码演示了读取所有QueryString中的参数:
C# Code | |
1. | foreach (string s in Request.Form) |
2. | { |
3. | Response.Write(string.Format("form,name:{0},value:{1}", s, Request.Form[s])); |
4. | } |
下面的代码演示了读取所有Form中的参数:
C# Code | |
1. | foreach (string s in Request.QueryString) |
2. | { |
3. | Response.Write(string.Format("QueryString,name:{0},value:{1}", s, Request.QueryString[s])); |
4. | } |
下面的代码演示了读取所有ServerVariables中的所有服务器参数,了解这些参数的含义很必要。
C# Code | |
1. | foreach (string s in Request.ServerVariables) |
2. | { |
3. | Response.Write(string.Format("ServerVariables,name:{0},value:{1}</br>", s, Request.ServerVariables[s])); |
4. | } |