ASP.NET 表单的理解

表单在网页中主要负责数据采集功能、整体把数据传递过去,大大提高向服务器提交数据的效率。

表单三个基本组成部分:


表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
表单格式:

<form name="表单的名称" method="get | post" action="URL">
    ......
</form> 

Form表单数据提交到服务器的方式有两种:Get和Post方式。

Request.Form["UserName"].ToString();
或者:
Request.Form.Get["UserName"].ToString();


Get方法接收:
Request["UserName"].ToString();

(1) get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML 。
HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 
(2) 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
(3) get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
(4) get安全性非常低,post安全性较高。


post 和 get 的联系:


       GET 将表单数据附加到请求页面的URL地址后面。GET方法用来传送少量数据,  URL的长度限制在8192个字符以内。如果发送的数据量太大,数据将被截断,从而导致意外的处理结果。
POST 在HTTP请求中嵌入表单数据。POST方法可用来发送大量数据,而且对于用户名、密码和信用卡等机密信息的发送,POST方法比GET方法更安全。


 特别说明

  一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。本例中用到的表单的属性解释(ASP部分请参考第四部分): Get把参数添加到action属性指定的地址中,并以锚方式打开。
    Post通过HTTP post处理发送数据。


Form数据集合
       使用Request的Form集合来获取客户端通过POST方法传送的表单数据,例如,服务器上有两个网页form.htm和do.aspx,form.htm中包含一个表单,表单传送数据的方法为POST,并且表单提交到同一目录下的do.aspx。form.htm的代码如下:
<html>
    <head>
    <title>使用POST传送数据</title>
    </head>
    <body>
    <form method="post" action="do.aspx">
    请输入您的名字:<input type="text" name="mingzi"><br>
    <input type="submit" value="提交">
    </form>
    </body>
    </html>

       在do.aspx中将使用Request.Form["mingzi"]来获取用户输入的名字,do.aspx的代码如下:
private void Page_Load(Object o,EventArgs e)  
//页面加载后即显示表单数据
    {
        string strmessage="您的名字为:";  //定义字符串变量并赋初值
        strmessage+= Request.Form["mingzi"];  //把表单数据串接到变量
        Response.Write(strmessage);//输出变量
    }

QueryString数据集合 

       可以利用QueryString集合来获取客户端通过GET方法传送的表单数据,如果把form.htm中表单的method属性值由POST改为GET,则在do.aspx中就需要通过Request.QueryString ["mingzi"]来 获取输入的名字。因为GET方法传送数据有一定的限制并且不安全,所以表单一般不使用GET方法。
private void Page_Load(object sender, System.EventArgs e)
  {
   if(Request.QueryString["mingzi"].ToString()!="")
    Response.Write("您的名字是:"+Request.QueryString["mingzi"].ToString());
  }

       在Web应用程序开发中,QueryString常用来获取URL查询字符串中变量的值,这与使用GET方法传送表单数据的情况一样。随着实践的深入逐步的加深理解!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值