一、表单提交时注意

如果是以get方式提交数据的时候,在接收时是用QueryString方式进行接收

如果是以post请求数据时在接收时是用Form进行接收

为什么么要这样做呢?我们用Request[];的形式也能接收到数据啊?

---》当用户提交表单时如果是以get请求发送数据的那么用Form是接收不到数据的,

用post请求提交时QueryString 也是接收不到数据的,,我们发现,get请求是把文本框等提交的

内容放到url地址栏里提交,就是把这些内容追加到请求报文头的请求文件后面了,

post请求则是把这些内容放到请求报文体里,

通过测试发现QueryString读取不到请求报文体里的内容但是能够读取到url里的内容,

而Form则是能够读取到请求体里的内容url请求头里的读取不到。

我们提交表单时,大多数情况下,将表单的method属性设置为post(安全,可以传递大数据)

这时表单中各个元素的值会议请求报文体的方式发给服务端,

在服务端通过context.Request.Form来进行接收,所以表单的元素必须要加上name属性

注意一下隐藏域的应用,它也是一个表单元素,只不过在浏览器看不出该元素的效果,

但是当单击提交按钮时发出(post请求)该隐藏域的value属性的值也会提交到服务端,

然后再服务端也是通过Request.Form接收,

我们在‘计算’的这个小程序中用来判断用户是否单击了提交按钮,起到一个标识作用。

二、重定向

context.Response.Redirect()

这时服务器端返回的响应头中 ,包含了一个302响应码,和一个Location属性,

然后浏览器发现302标识重定向,重定项到Location属性指向的页面

1)context.Response.End()终止执行,该语句后面的代码都不会执行了

2)注意问题:

有哪些表单元素可以向服务器进行提交,而且有哪些属性会提交到服务端

readonly/ disabled:  readonly和disabled都是只2读的,

区别在于readonly会把value值提交到服务器而disabled则不会

当我们点击【提交】按钮以后是浏览器将用户填写的文本框等控件中的值“提取”出来发送给服务器,

而不是服务器来读取用户填写的这个页面。哪些标签的哪些值会被提交给服务器呢?

将用户填写的内容提交到服务器有如下几个条件:

只能为 input、textarea、select三种类型的标签。只有input(文本框、CheckBox等)用户才可能填写值,

<label>、<p>、<font>等标签仅供显示用,没有提交到服务器的必要。

只有value属性的值才会提交给服务器。以input标签为例,input标签有title、type、disabled等属性,

但是这些属性都是供显示用的,用户并不能修改,只有value属性才是用户输入的属性,

因此只有value属性的值才会被提交到服务器。

标签必须设定name属性。学习Dom的时候我们知道如果要通过JavaScript操作标签,

必须为标签设定Id。如果要将标签的value属性值提交到服务器,则必须为标签设定name属性

,提交到服务器的时候将会以“name=value”的键值对的方式提交给服务器,多个键值对之间用&分割。

除了单选按钮等少数标签之外,大部分标签的name的值不能重复。name是给服务器用的,

id是给Dom用的。对于RadioButton,同name的为一组,选中的RadioButton的value被提交到服务器。

如果设置了控件的disabled属性的话,浏览器也不会提交该控件的值。这是与readonly的区别

放到form标签内。只有放到form标签内的标签才可能会被提交到服务器,form之外的input等标签被忽略。

知识点

1)url传值

//url传值

        context.Response.Write("<a href='MyFirst.ashx?name=张三&pwd=12345'>哈哈</a>");

url传值会向服务器提交一个get请求,get请求是把文本框等提交的内容放到url地址栏里提交,

就是把这些内容追加到请求报文头的请求文件后面了

在服务端就可以通过context.Request.QueryString来接收

2)重定向

  //重定向

        context.Response.Redirect ("Login.ashx");

3)隐藏域

<input type='hidden' value='true' name='postBack' />

这个标签在浏览器端不会显示出来,

当用户点击表单里的提交按钮发送post请求时就会把这个hidden标签里的value值的内容提交到服务端,

那么我们在服务端就可以

判断浏览器提交的是get请求还是post请求了

数往知来 ASP.NET 表单的提交_url传值_重定向 <十八>的更多相关文章

  1. ASP.NET MVC 客户端验证失败后表单仍然提交问题

    客户端验证失败后表单仍然提交问题!导致页面刷新,辛辛苦苦输入的内容荡然无存. 多么奇怪的问题.按道理,验证失败,就应该显示各种错误信息,不会提交表单才对.而现在,错误信息正常显示,但页面却刷新了一遍. ...

  2. 使用jQuery.form插件,实现完美的表单异步提交

    传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...

  3. 使用jQuery,实现完美的表单异步提交

    jQuery异步提交表单 <form id="form1" method="post"> <table border="1" ...

  4. form表单的提交方式

    开发中表单提交是很常见的,表单的提交方式也多种方式. 1.使用submit按钮提交表单  <input type="submit"/> <!DOCTYPE htm ...

  5. 12、Struts2表单重复提交

    什么是表单重复提交 表单的重复提交: 若刷新表单页面, 再提交表单不算重复提交. 在不刷新表单页面的前提下: 多次点击提交按钮 已经提交成功, 按 "回退" 之后, 再点击 &qu ...

  6. java防止表单重复提交

    用session防止表单重复提交 思路:在服务器端生成一个唯一的随机标识串Token,同时在当前用户的Session域中保存这个Token.然后将Token发送到客户端的Form表单中,在Form表单 ...

  7. java web学习总结(十三) -------------------使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  8. 使用Struts 2防止表单重复提交

    用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提 ...

  9. js阻止form表单重复提交

    防止表单重复提交的方法总体来说有两种,一种是在js中阻止重复提交:另一种是在后台利用token令牌实现,大致思路是生成一个随机码放到session和form表单的隐藏输入框中,提交表单时两者对比,表单 ...

随机推荐

  1. php抽象 与接口

    抽象方法和抽象类 PHP5支持抽象类和抽象方法.抽象类不能直接被实例化,你必须先继承该抽象类,然后再实例化子类.抽象类中 至少要包含一个抽象方法.如果类方法被声明为抽象的,那么其中就不能包括具体的功能 ...

  2. javaScript初学者易错点

    大家好,这是我在博客园写的第一篇博文.作为一名前端开发初学者,由于经验不足,水平有限,在做项目的过程中总会遇到这样或那样的问题,每每这时候,我都比较喜欢到博客园这里来寻求解决方案,结果也总是能找到满意 ...

  3. PL/SQL 如何导出INSERT语句

    需要把查询出来的数据导出成Insert的语句.忽然发现不会用了. 上网查,找到一些,但都不尽如人意. 于是就写了这篇文章.助人助己. 在PL/SQL Developer左边的树状导航栏里,找到[Tab ...

  4. shell查找匹配行,输出该行并输出下面的一行

    查找匹配行,输出该行并输出下面的一行 grep: grep -A 1 'keyword'   file awk:awk '$0~/keyword/{print $0; getline; print $ ...

  5. Asp.net MVC 3实例学习之ExtShop(四)——完成产品列表页

    在完成产品列表页前要做一些准备功夫.首先是去下载MvcPager用了为产品列表分页.下载的可能是基于MVC 2的,没关系,可以用在MVC 3上.如果有担心,下载源代码重新编译一次好了.下载后将DLL添 ...

  6. Java里面instanceof怎么实现的

    开始完全一头雾水呀,后面看了Java指令集的介绍,逐渐理解了. https://www.zhihu.com/question/21574535/answer/18998914 下面这个答案比较直白 你 ...

  7. hdu1050(贪心)

    囧 . 想了好久,一开始想的是一个连通图怎样用黑白两色染色,想了各种算法发现都不好做,然后灵机一动这不是网路流吗,然后想怎么建图,如果转换成网络流这题就好做了,建图加个二分应该就可以解决了,最后又发现 ...

  8. 嵌入式ARM系统开发基础

    从.net到delplhi 从windows到Linxu 未来有多远? 如何突破自己? 什么是自己? 我从哪里来,要到哪里去? 世界是什么? 是世选择了我,还是我选择了世界? 怎么才能够完成蜕变? 去 ...

  9. 跨平台的神器RAD XE5 来啦!!!! XE5破解

    什么叫真正的跨平台,DELPHI经过这么长时间的洗礼,如今走上了夸平台的开发之路.希望RAD加油! 先去下一个XE5 再去下一个破解神器 一个破解BDS.exe的神器 开始吧.为了成功破解,请先将电脑 ...

  10. android下身份验证方式调用webservice

    在企业开发领域,webservice还是经常被用到的服务体系,因为他对安全事务支持都比较好. 有时候,我们就需要在android下调用后端的webservice服务,因为在内部网络环境下,所有需要ba ...