HTML表单的提交方式
<form action="接收数据页面" method="post">HTML表单里用的是HTML控件。
对于一个普通HTML表单来说,它有两个重要的属性:action和method。 action属性指明当前表单提交之后由哪个程序来处理,这个处理程序可以是任何动态网页或者servlet或者CGI(Common Gateway Interface),在asp.net里面一般都是都aspx页面来处理。 method属性指明form表单的提交方式。它有两个可能值get和post。
服务器端表单
服务器端表单与HTML表单相比,多了一个runat=”server”标记,如: <form id="form1" runat="server">
在服务器端表单里可以不用指定action属性,表示由当前页面处理,也可以不指定method属性,默认为post方式提交表单。在服务器端表单里,我们不光可以使用HTML控件,还可以使用HTML服务器控件,还可以使用asp.net控件。 另外需要注意的是,在一个asp.net页面中可以有多个不带
runat=”server”标记的表单,但是只能有一个服务器端表单。
一、get方式:
<form id="form1" runat="server" method="get">
二post方式:
<form id="form1" runat="server" method="post">
主要是看地址栏上的变化。
===============
注意取值
protected void btnSubmit_Click(object sender, EventArgs e)
{
//Request.Form取不到值
//string strName=Request.Form["txtName"];
//string strPasWord=Request.Form["txtpassWord"]; // Request和Request.QueryString都可以取到值
string strName = Request["txtName"];
string strPasWord = Request["txtpassWord"];
//string strName = Request.QueryString["txtName"];
//string strPasWord = Request.QueryString["txtpassWord"];
this.Label3.Text ="用户名:"+strName + " " + "密码:"+strPasWord; Server.Transfer("info.aspx?name=" + strName + "&password=" + strPasWord);
//Response.Redirect("info.aspx?name=" + strName + "&password=" + strPasWord);
}
Server.Transfer和Response.Redirect实现页面跳转的区别
Redirect方式
中文和数字有区别,数字直接显就出来,Redirect方式get和post方法没有区别。
Transfer方式
但Transfer方式,get和post方法有区别,请看上面get和post区别,默认是采用post方式
===================
总结:
(1)get方式提交的表单在地址栏会显示参数名和参数值,而post方式不会。
(2)同于浏览器地址栏能输入的最大字符数有限制,所以用get方式提交不能处理参数值还更的表单,而post方式则没有这个限制。
获取控件(不论是服务器控件还是HTML控件)的值常见方式有如下几种:
获取方式 | 表单提交方式 |
Request.QueryString["控件名"] | 适合于get方式提交的表单 |
Request.Form["控件名"] | 适合于post方式提交的表单 |
Request["控件名"] | 同时适合于get和post方式提交的表单 |
从上面我们可以看到用Request["控件名"]这种方式对于get和post两种方式都可行,那么我们就可以用这种方式来应付所有提交的表单