老尸 发表于 2015-1-16 23:42:16

ASP网页设计ASP+的Form中反省填写是不是准确

减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。asp+现在的贸易网站,大概团体网站,几都有客户查询拜访啊,用户注册之类的器材,一定会用到表单,这些表单的填写准确与否,分明是由手写代码的体例来把持的。我供认编写代码,是一项风趣的事情,不外每次考证表单都来手写代码,我们但愿进步我们的事情效力,并非把我们很无限的工夫花在表单的考证事情上。
  基于别的的一些缘故原由,Web使用程序很欠好考证用户的输出,HTML3.2标准可让你把持用户的反应,但歹意的大概手艺崇高高贵的用户能够绕过,因而即便有了扫瞄器真个手写代码,服务器端一样也必要考证,才干包管平安。
  上面是微软的事情职员,给出的贸易网站用手写代码把持表单考证的弊端。
  1.只管毛病信息或图标常常与输出元素相邻,可是它们几近老是位于表的分歧单位格中。
  2.页面中常常会有一个地区来汇总一切毛病。
  3.很多站点包括客户端剧本,以便供应更快速的反应,同时避免白白地在与服务器之间往复。
  4.很多包括客户端剧本的站点在呈现毛病时会显现信息框。
  5.不但会考证文本输出,还会考证下拉列表和单选按钮。
  6.假如某个字段为空,站点一般会显现与该条目有效时分歧的信息或图标。
  7.很多无效性反省能够很好地取代经常使用的表达式。
  8.考证一般是基于两个输出之间的对照了局。
  9.90%或90%以上的考证义务是一些罕见的操纵,比方反省姓名或邮政编码。年夜多半站点仿佛仍在反复举行这些事情。
  10.由于站点之间的不同一般太年夜,没法取得一种完善的办理计划来处置每一个站点的一切考证义务。
  假如你想向你的同事证明你有一种很"酷"的办法,能够克制在姓名字段内里输出空值,记得选择ASP.net,而且看上面的教程。
ASP.net举行表单考证的历程
  1.aspx文件被编译,运转
  2.用户输出数据
  3.触发Page_Load事务
  4.变动Web控件属性,提醒那里没有输出
  5.将页面用Html从头输入给用户
  6.再次提示用户输出
Page_Load历程
  Page工具包括一些与服务器端考证有关的主要属性和办法。下表列出了Page_Load属性的一切Collect和methed。
Page_Load办法名申明
  IsValid(最常常利用)这是最有效的属性。该属性能够反省全部表单是不是无效。一般在更新数据库之行进行该反省。只要Validators会合的一切工具全体无效,该属性才为真,而且不将该值存进缓存。
Validators该页一切考证工具的汇合。这是完成IValidator界面的工具的汇合。
Validate在考证时挪用的一种办法。在Page工具上默许的实行体例是转至每一个考证器,并请求各考证器自行评价。
用来考证表单的考证器(Web控件)
 RequiredFieldValidator反省用户是不是输出或选择了任何内容
RegularExpressionValidator依据划定规矩表达式反省用户输出。该历程同意举行很多品种的反省,能够用于邮政编码和德律风号码等的反省。
CompareValidator将输出控件与一个流动值或另外一个输出控件举行对照。比方,它能够用在口令考证字段中。也能够用来对照输出的日期和数字。
RangeValidator与CompareValidator十分类似,只是它用来反省输出是不是在两个值或别的输出控件的值之间
CustomValidator同意用户编写本人的代码以到场到考证框架中。 
  实例申明下面所形貌的控件的运作
  我们创建一个最小化的.aspx页面,我们不必要华美的润色效果。
<p>请输出新的用户ID和口令</p>
<formrunat=server>
<table>
 <tr>
  <td>用户ID</td>
  <td><inputtype=textrunat=serverid=txtName></td>
 </tr>
 <tr>
  <td>口令</td>
  <td><inputtype=passwordrunat=serverid=txtPWord></td>
 </tr>
 <tr>
  <td>请从头输出口令</td>
  <td><inputtype=passwordrunat=serverid=txtRePWord></td>
 </tr>
<table><br>
<inputtype=submitrunat=serverid=cmdSubmitvalue=Submit>
</form>

  程序是一个十分刻薄的器材,以是,要夸大一切的项目都填写了,我们能够如许来做。在每个字段前增加RequiredFieldValidator。若输出字段为空,我们要在字段前显现一个星号(*),并在中间呈报毛病。
比方:
<tr>
 <td>
  <asp:RequiredFieldValidatorrunat=server
     ControlToValidate=txtName
     ErrorMessage="必要用户用户名。">*
  </asp:RequiredFieldValidator>
 </td>
 <td>UserID:</td>
 <td><inputtype=textrunat=serverid=txtName></td>
</tr>
  没有输出任何内容,则在标签中间显现"*"。呈现堕落动静。"ControlToValidate"属性指定了必要考证的控件ID。最初一步是向页面顶部显现一切的堕落征象。
  代码:
<asp:ValidationSummaryrunat=serverheaderText=此页有毛病:/>

  然后,我们必要用户ID必需是6-10个字符,口令必需是4-12个字母,并且必需有@#$%^&*/的字符。
  代码:这里我们增添了对ID长度的限定。
<td>
 <inputtype=textrunat=serverid=txtName>
 <asp:RegularExpressionValidatorrunat=server
    ControlToValidate="txtName"
    ErrorMesage="口令必需由6-10个字母构成。"
    ValidationExpression="{6,10}"/>
</td>
  接着,我们要考证两次输出的口令是不是一样。
<asp:RegularExpressionValidatorrunat=serverdisplay=dynamic
  ControlToValidate="txtPWord"
   ErrorMessage="口令必需包括@#$%^&*/中的一个。"
   ValidationExpression=".*[@#$%^&*/].*"/>
<asp:RegularExpressionValidatorrunat=serverdisplay=dynamic
   ControlToValidate="txtPWord"
   ErrorMessage="口令必需是4-12个非空缺字母。"
   ValidationExpression="[S{4,12}"/>
<asp:CompareValidatorrunat=server
   ControlToValidate=txtRePWord
   ControlToCompare=txtPWord
   ErrorMessage="口令不婚配。"/>
  默许情形下,CompareValidator只做复杂的字符串婚配对照。假如必要,它可举行触及日期和数字的更庞大的对照。
  几个必要注重的成绩
  关于剧本库
  由于考证Web控件剧本在剧本库中,以是不用将一切客户端考证的代码间接发送到页面中,只管外表上仿佛是如许做的。次要的剧本文件援用相似以下所示:
<scriptlanguage="javascript"src="/_aspx/1.0.9999/script/WebUIValidation.js"></script>
  默许情形下,剧本文件将安装在"_aspx"目次中默许的根目次下,并利用相对根的剧本include指令挪用,该指令以正斜线开首。该援用标明每一个独自的工具不用包括剧本库,统一台盘算机上的一切页面能够援用统一个文件。您会注重到,该路径中另有一个公用的言语运转时版本号,以便分歧的运转时版本能够在统一台盘算机上运转。
  假如检察一下您默许的假造根目次,您会找到该文件并检察个中的内容。这些文件的地位在config.web文件中指定。config.web文件是一个用于年夜多半ASP+设置的XML文件。以下是该文件中地位的界说:
<webcontrols
  clientscriptslocation="/_aspx/{0}/script/"
/>
  勉励您浏览该剧本,以便深切懂得产生的事务。不外,倡议您不要修正这些剧本,由于它们的功效与特定的运转时版本严密相连。在运转时版本更新时,这些剧本大概也必要响应的更新,您将大概保持变动,大概面对剧本不事情的成绩。假如特定项目必需变动这些剧本,先备份这些剧本,然后将您的项目指向备份文件,办法是利用公有的config.web文件替换这些文件的地位。假如字符串中包括格局指令"{0}",运转时版本号将交换该指令。最好将该地位变动为一个绝对援用或相对援用。</p>在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。

灵魂腐蚀 发表于 2015-1-20 11:28:41

那么,ASP.Net有哪些改进呢?

透明 发表于 2015-1-24 14:57:20

掌握asp的特性而且一定要知道为什么。

仓酷云 发表于 2015-1-31 20:05:54

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

谁可相欹 发表于 2015-2-6 22:01:46

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

分手快乐 发表于 2015-2-6 22:01:46

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

小魔女 发表于 2015-2-18 21:55:33

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

金色的骷髅 发表于 2015-3-6 11:07:53

那么,ASP.Net有哪些改进呢?

若天明 发表于 2015-3-13 00:08:34

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

山那边是海 发表于 2015-3-20 06:40:15

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
页: [1]
查看完整版本: ASP网页设计ASP+的Form中反省填写是不是准确