Form的method方法get和post的区别

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两种方式都可行,那么我们就可以用这种方式来应付所有提交的表单

 

 

posted @ 2010-08-05 23:04  aito  阅读(851)  评论(0编辑  收藏  举报