目录
1、GET方法
2、POST方法
引出问题:我们前面在赋值的时候,都是在一个页面进行赋值,那么怎么样将web1的数据传送到web2中呢,这时候,就要用到request方法了。
作用:Request对象主要是让服务器取得客户端浏览器的一些数据,包括从HTML表单用Post或者GET 方法传递的参数、Cookie和用户认证。因为Request对象是Page对象的成员之一 ,所以在程序中不需要做任何的声明即可直接使用; 其类名为 HttpRequest。
1、GET方法
Request对象的QuerySting属性可以获取 HTTP查询字符串变量集合 。
通过该属性,我们可以读取地址信息 http://localhost/aaa.aspx?uid=tom&pwd=abc 其中标识为红色部分的数据。
注意:提交方式要设置为“Get”,不设其实也可以的,因为默认情况就是Get。
该方法最终在网页上能看到相应的数据。而下面的方法不能。
引例:在1.aspx文件中设置两个文本框,分别输入的是账号和密码,然后将输入的数据传到2.aspx的Label中。
实现过程:
1、新建一个项目,在该项目下新建两个web窗体。
2、按照题目要求添加相应的控件:
3、要怎么将两个网页连接起来呢,首先肯定需要跳转到相应的网页,这个我们前面使用过,就是:
Response.Redirect("2.aspx");
4、然后在后面引用与2.aspx对应的变量。 "?" 是一个特殊字符,用于分隔 URL 的基本部分(即地址)和查询参数部分。在 URL 中,"?" 之前的部分表示要访问的资源路径,而"?" 之后的部分则包含了参数信息。&表示连接。 所以上面的例子可以使用:
Response.Redirect("2.aspx?username="+TextBox1+"&pwd="+TextBox2);
这里使用了username和pwd两个变量名,所以在2.aspx.cs的初始化中也要与之对应:即
Label1.Text = Request.QueryString["username"];
Label2.Text = Request.QueryString["pwd"];
5、启动 该项目,查看是否满足题目要求
初始状态:
然后随机输入数字,点击button:
发现并不满足要求,这是因为在下面的语句中没有正确引用TextBox的text值。(在这里要注意,如果是选择相关的控件,那么引用的就是.SelectedValue)
将上面语句修改为:
Response.Redirect("2.aspx?username="+TextBox1.Text+"&pwd="+TextBox2.Text );
重新测试:
就可以正确显示了,网页的地址栏中也有相应的数据。
这就是一个简单的使用,下面看看Post方法与这个方法的区别 。
2、POST方法
通过该属性,读取<Form> </Form>之间的表单数据。
注意:默认方式为GET方式,所以提交方式要设置为“Post”。
与Get方法相比较,使用Post方法可以将大量数据发送到服务器端。
与前面相比,需要修改的位置有三个:
- 修改源文件,在form后面加上method和action,即
- 在2.aspx.cs文件中使用的方法不再是Request.QueryString,而是Request.Form;
- Request.Form后面的变量名就不再是自己写的了,就直接使用相应的控件ID即可。如下图:
下面,启动一下(要把Get方法里面没有使用到的注释掉,不然会出错),看是否能够达到要求:
可以满足要求,且可以发现,它的地址栏中没有相应的数据。
今天就到这吧,明天尝试做一个小练习。