ASP.NET - 在 ASP.NET 网页中验证用户输入

37、网页中控件的使用指南 本文详细介绍了在网页开发中如何合理使用各种控件来提升用户体验和确保数据输入的准确性。内容涵盖ASP.NET验证控件的使用、SharePoint数据视图控件的插入、测试ASP.NET表单的方法以及SharePoint服务器控件的功能与应用。通过实际操作步骤,帮助开发者创建功能强大且易用的网页应用程序。 阅读详情

 

      通过使用验证控件,可以向 ASP.NET 网页中添加输入验证。验证控件为所有常用的标准验证类型(例如,测试某范围内的有效日期或值)提供了一种易于使用的机制,以及自定义编写验证的方法。此外,验证控件还允许自定义向用户显示错误信息的方法。验证控件可与 ASP.NET 网页上的任何控件(包括 HTML 和 Web 服务器控件)一起使用。默认情况下,ASP.NET 网页会自动检查有无潜在的恶意输入。

 

一、  使用验证控件

通过像添加其他服务器控件那样向页面添加验证控件,即可启用对用户输入的验证。有各种类型的验证控件,如范围检查或模式匹配验证控件。每个验证控件都引用页面上其他地方的输入控件(服务器控件)。处理用户输入时(例如,当提交页面时),验证控件会对用户输入进行测试,并设置属性以指示该输入是否通过测试。调用了所有验证控件后,会在页面上设置一个属性以指示是否出现验证检查失败。

可将验证控件关联到验证组中,使得属于同一组的验证控件可以一起进行验证。可以使用验证组有选择地启用或禁用页面上相关控件的验证。其他验证操作(如显示 ValidationSummary 控件或调用 GetValidators 方法)可以引用验证组。

您可以使用自己的代码来测试页和单个控件的状态。例如,您将会在使用用户输入信息更新数据记录之前来测试验证控件的状态。如果检测到状态无效,您将会略过更新。通常,如果任何验证检查失败,您都将跳过所有处理过程并将页面返回给用户。检测到错误的验证控件随后将生成显示在页上的错误信息。可以使用 ValidationSummary 控件在一个位置显示所有验证错误。

说明: 更新、插入和删除数据的数据绑定控件(如 GridView、FormView 和 DetailsView 控件)会在执行数据更新操作之前自动验证是否通过验证检查。

 

二、何时进行验证

验证控件在服务器代码中执行输入检查。当用户向服务器提交页面之后,服务器将逐个调用验证控件来检查用户输入。如果在任意输入控件中检测到验证错误,则该页面将自行设置为无效状态,以便在代码运行之前测试其有效性。验证发生的时间是:已对页面进行了初始化(即,处理了视图状态和回发数据),但尚未调用任何更改或单击事件处理程序。

如果用户使用的浏览器支持 ECMAScript (Javascript),则验证控件还可使用客户端脚本执行验证。这样可以缩短页面的响应时间,因为错误将被立即检测到并且将在用户离开包含错误的控件后立即显示错误信息。如果可以进行客户端验证,您将可以在很大程度上控制错误信息的布局并可以在消息框中显示错误摘要。

即使验证控件已在客户端执行验证,ASP.NET 仍会在服务器上执行验证,这样可以在基于服务器的事件处理程序中测试有效性。此外,在服务器上进行重新测试有助于防止用户通过禁用或更改客户端脚本检查来逃避验证。

可通过在代码中调用验证控件的 Validate 方法来调用验证。

 

三、验证多个条件

每个验证控件通常只执行一次测试。但您可能需要检查多个条件。例如,您可能需要指定必需的用户输入,同时将该用户输入限制为只接受特定范围内的日期。

可以将多个验证控件附加到页面上的一个输入控件。此时,将使用逻辑 AND 运算符来解析控件执行的测试,这意味着用户输入的数据必须通过所有测试才能视为有效。

有些情况下,几种不同格式的输入都可能是有效的。例如,在提示输入电话号码时,您可能允许用户输入本地号码、长途号码或国际长途号码。由于用户输入必须通过所有测试才能视为有效,因此,在此实例中使用多个验证控件不起作用。若要执行此类测试(必须仅通过一个测试的逻辑 OR 运算),请使用 RegularExpressionValidator 验证控件并在该控件中指定多个有效模式。或者,还可以使用 CustomValidator 验证控件并编写自己的验证代码。

 

四、显示错误信息

验证控件通常在呈现的页面中不可见。但是,如果控件检测到错误,则它将显示指定的错误信息文本。错误信息可以以各种方式显示,如下表所示。

Display 方法

说明

内联

每一验证控件可以单独就地(通常在发生错误的控件旁边)显示一条错误信息。

摘要

验证错误可以收集并显示在一个位置,例如页面的顶部。这一策略通常与在发生错误的输入字段旁显示消息的方法结合使用。如果用户使用 Internet Explorer 4.0 或更高版本,则摘要可以显示在消息框中。

如果使用验证组,则每个单独的组需要一个 ValidationSummary 控件。

就地和摘要

同一错误信息的摘要显示和就地显示可能会有所不同。可使用此选项就地显示简短错误信息,而在摘要中显示更为详细的信息。

自定义

您可以通过捕获错误信息并设计自己的输出来自定义错误信息的显示。

      如果使用就地显示或摘要显示选项,则您可以使用 HTML 设置错误信息文本的格式。

安全说明: 如果要创建自定义错误信息,请确保显示的信息不会帮助恶意用户损害您的应用程序。

 

五、验证对象模型

通过使用由各个验证控件和页面公开的对象模型,可以与验证控件进行交互。每个验证控件都会公开自己的 IsValid 属性,可以测试该属性以确定该控件是否通过验证测试。页面还公开一个 IsValid 属性,该属性总结页面上所有验证控件的 IsValid 状态。该属性允许您执行单个测试,以确定是否可以继续自行处理。

页面还公开一个包含页面上所有验证控件的列表的 Validators 集合。您可以依次通过这一集合来检查单个验证控件的状态。

说明: 客户端验证的对象模型略有不同。

 

六、自定义验证

可采用以下方法自定义验证过程:

·可以指定错误信息的格式、文本和位置。此外,还可以指定是单独显示错误信息还是显示为摘要。

·可以使用 CustomValidator 控件创建自定义验证。该控件调用您的逻辑,但在设置错误状态、显示错误信息等方面和其他验证控件的工作方式相同。这为创建自定义验证逻辑(同时仍在页面的验证框架中使用)提供了一种简便方法。

·对于客户端验证,可以截获验证调用,并用您自己的验证逻辑替代或添加您自己的验证逻辑。

 

37、网页中控件的使用与验证 本文详细介绍了在网页开发中如何使用各种控件,包括ASP.NET验证控件、SharePoint数据视图控件和服务器控件。内容涵盖了用户数据输入验证、表单测试、数据绑定与验证表达式的配置,以及SharePoint服务器控件的功能和使用方法。文章还提供了操作流程总结、注意事项及深入学习方向,帮助开发者构建功能完善、安全可靠的Web页面。 阅读详情

相关推荐

ASP.NET C#实现验证码制作

在ASP.NET网页开发中,验证码是一种常见的用于验证用户输入的机制。在实际应用中,我们通常还需要添加验证码的验证逻辑,以验证用户输入是否与生成的验证码一致。这可以通过在用户提交表单时,将用户输入的验证码与生成的验证码进行比较来实现。当用户点击刷新按钮时,会生成一个新的验证码,并将其显示在页面上的图片控件中。首先,我们需要在ASP.NET网页中添加一个用于显示验证码的图片控件和一个用于刷新验证码的按钮。接下来,我们需要在后台代码中生成验证码的逻辑。中,我们将生成随机的验证码,并将其绘制到图片控件上。

TzData的博客 523

ASP.NET中的输入验证

前些日子因为验证的问题而闹心,具体情况如下1,使用javascript,在按钮按下时直接执行服务器端的代码去了,不会执行javascript;2,使用验证控件,验证控件占页面空间,有时候不好排版,当有两个以上按钮时,如一个提交,一个取消,按下取消的那个按钮也会执行验证,而这是不需要的。经过一段时间学习和摸索,以上问题都得以解决,现将所知的验证方法总结如下: 一,使用javasc

我的生活,我的BLOG 1257

63、动态网页开发:从基础到实践

本文详细介绍了动态网页开发的基础知识与实践操作,涵盖控件添加、界面设置、事件编码、应用程序测试及用户输入验证等内容。通过美元兑换墨西哥比索的实例,帮助读者掌握使用Visual Basic进行ASP.NET动态网页开发的核心技能,并提供常见问题解答与多个练习项目以巩固学习成果。

swift5iosmith的博客 52

JavaScript 资源区

2005年11月08日 2005年11月16日 13:24   /* ------------------------------------------------------------------------------- 文件名称:check.js 说明:JavaScript脚本,用于检查网页提交表单的输入数据 版本:1.0 */   /* 用途:...

weixin_33953384的博客 286

asp.net 非空验证

asp.net 非空验证 asp.net 非空验证asp.net 非空验证 asp.net 非空验证

ASP.NET MVC后台参数验证的几种方式

前言 参数验证是一个常见的问题,无论是前端还是后台,都需对用户输入进行验证,以此来保证系统数据的正确性。对于web来说,有些人可能理所当然的想在前端验证就行了,但这样是非常错误的做法,前端代码对于用户来说是透明的,稍微有点技术的人就可以绕过这个验证,直接提交数据到后台。无论是前端网页提交的接口,还是提供给外部的接口,参数验证随处可见,也是必不可少的。总之,一切用户的输入都是不可信的。 参数验证有许多种方式进行,下面以mvc为例,列举几种常见的验证方式,假设有一个用户注册方法 [HttpPost] public ActionResult Register(RegisterInfo info)

ASP.NET检测输入值OnClientClick

把脚本放到<body>后面 <script type="text/javascript"> function test() { var strName = document.getElementById("<%=t1.ClientID%>").value; if (strName.length<4) { alert("strName 长度不能小于4"); .

丰空岛主(Vega Prime,Android,LabWindows,ThreeJS,Python,OpenCV) 978

SpringBoot+VUE3实战:如何用WebSocket搞定网页端语音通话(避坑指南)

本文详细介绍了如何使用SpringBoot和VUE3结合WebSocket技术实现网页端语音通话功能。从环境配置、WebSocket服务端实现到前端音频处理,提供了完整的开发指南和避坑建议,帮助开发者快速构建稳定高效的实时语音通信系统。

weixin_29021195的博客 221

asp.net验证用户名是否已经存在

因为项目要实现添加用户的功能,所以想到要检测用户名是否存在。一开始想到放个按钮检测,感觉不太好。因为后来到网上一搜发现大家爱都用ajax实现的。因为我是一个小菜鸟,所以还不懂得ajax这项技术。。。伤心啊。。。从网上看到很多资料但是我尝试了下没有搞出来。所以只好老老实实看看ajax到底怎么回事。然后从http://q.sohu.com/forum/5/topic/1486059看到

一个小菜鸟的C#学习日记 1万+

远心F-theta镜ZEMAX设计

根据给出的F-theta镜的设计指标,对F-theta镜进行了具体的光学设计。从对F-theta镜设计思想的介绍出发,对选取的初始结构进行了优化设计,优化完成后,对所设计的F-theta镜进行了像质评价,通过点列图、场曲与畸变图、相对照度、能量集中度对所设计的F-theta镜进行了分析,最终,对F-theta镜的设计效果进行了验证。

hitliuyi17的博客 9433

CSIT883系统分析与项目管理——Lecture3重点概念

🎈本节课,介绍了项目集成管理当中,关于NPV这个概念相关的内容,以及介绍什么是系统需求,什么时候需要开始系统需求,如何进行调查系统需求等等相关的题目,这里供大家复习参考吧!还有还有最关键的是NPV的计算,我单独写一篇博文,需要的同学快去学习吧!

AI手套的博客 1090

ASP.NET - 演练:验证 Web 窗体页中的用户输入

      本演练阐释如何使用 ASP.NET 验证程序控件检查网页中的用户输入。您无需代码就可以使用某些自动执行所有检查的控件。此外,您还将通过编写代码创建一个自定义验证程序,该过程将演示如何将您自己的逻辑添加到页的验证框架中。最后,您将学习如何根据用户在页上所做的选择有条件地验证用户输入。 在本演练中,您将为网站创建一个允许访问者申请预订的页面。由于本演练的目的是为阐释验证,因此预订什

dodream的专栏 2743

Python+OpenCV实战:5分钟搞定机械臂手眼标定(眼在手上模式)

本文详细介绍了使用Python和OpenCV在5分钟内完成机械臂手眼标定(眼在手上模式)的实战教程。通过解析相机坐标系与机械臂基坐标系的转换关系,提供从数据采集到标定矩阵计算的全流程代码实现,帮助开发者快速解决AX=XB问题,提升机械臂视觉引导精度。

weixin_33670786的博客 498

ASP.NET中提供的部分常见的验证控件

RequiredFieldValidator控件 用于检查任何特定控件(服务器控件)是否录入数据。 单词解释:Required:必须的, Field:字段, Validator:验证   input id="Text1" type="text"  runat="server"/> asp:TextBox ID="TextBox1" runat="ser

u010344092的专栏 740

GD32F303 Keil 工程项目从零搭建实战指南

本文是一份详细的GD32F303 Keil工程项目从零搭建实战指南。文章阐述了亲手搭建工程的重要性,并逐步指导开发者完成从环境准备、目录规划、工程创建、文件添加、关键配置到编译调试的全过程。重点讲解了如何正确选择启动文件、添加外设库、配置头文件路径和全局宏,旨在帮助开发者深入理解工程结构,掌握GD32F303开发的核心技能,实现从“会用”到“懂”的跨越。

weixin_29190651的博客 406

基于STM32的HC-SR04超声波模块测距(新手级)

本人是嵌入式新手,学习了STM32的部分内容,最近想找些项目做,然后顺便学习了一下HC-SR04超声波模块,学习过程中也参考了一些大佬的文章。本文记录了自己的学习方法和学习过程,同时也希望能和各位大佬交流讨论。

weixin_63758495的博客 2206

asp.net验证控件简单说明

二、ASP.NET验证控件 在ASP.NET中验证控件如下:   验证类型 使用的控件 说明 必填字段验证 RequiredFieldValidator 确保用户不会跳过某一项输入。 比较验证 CompareValidator 将用户输入与一个常数值或者另一个控件或特定数据类型的值...

weixin_33849215的博客 104

【Claude】Claude Code 子代理(Subagents)完全指南:多 AI 编排与并行任务管理

子代理是在独立上下文窗口特性主代理子代理上下文窗口与你对话的主上下文完全独立的上下文工具权限拥有所有工具可自定义限制生命周期整个会话完成任务后结束通信方式直接对话结果返回给主代理模型继承主会话设置可指定不同模型你可以创建专属子代理,指定模型、工具权限和系统提示。在对话中,Claude 会根据任务自动选择合适的子代理。

博客 5538

asp.net登录时验证码的制作与验证

1.新建一个页面,ImageCode.aspx 2.在Page_Load中添加如下代码 string tmp = RndNum(4); HttpCookie a = new HttpCookie("ImageV ", tmp); Response.Cookies.Add(a); this.ValidateCode(tmp); 3.在该页面中添加两个方法 private v...

anhuanjiaoci044699的博客 138

嵌入式工程师成长之路(1)——元件基础(试读版)

上拉电阻阻值选错导致MCU反复重启?0欧电阻竟然能“背锅”信号干扰?高精密采样电阻的温漂毁了整个控制系统?——这些问题,都是基础不牢!优快云硬件领域头部博主十年经验汇总,涵盖电阻分类、封装、实战选型、避坑指南,附带职业进阶路径,助你从小白进阶为“电路医生”!

云轩阁 34万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

.net 前台验证输入是否一致

><asp:CompareValidator ID="CompareValidator8" runat="server"                                         ErrorMessage="Please input the same Email!" ControlToCompare="txtIndividualEmail"

336

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ASP.NET - ASP.NET 服务器控件的特例验证结果

验证可以确保用户输入符合您指定的条件。在大多数情况下,这一操作比较简单。但有时对输入进行验证会引入特殊的条件。了解这些条件是什么、验证如何执行以及有哪些可能的验证结果是非常重要的。 一、与空白字段的对比 如果字段为空白,则除 RequiredFieldValidator 控件之外的所有验证控件都会将该字段视为有效字段。您必须使用 RequiredFieldValidator 控件来...

编程资料大全 125

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ASP.Net中四位数字验证码的实现

以前看到别人生成的图片c

934
上一篇: ASP.NET - 如何:筛选 SiteMapDataSource Web 服务器控件检索到的节点
下一篇: ASP.NET - ASP.NET 服务器控件验证类型 - RequiredFieldValidator 类
dodream
博客等级 码龄21年 93粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值