当前位置: 首页 > news >正文

ASP.NET Web Forms 4.5的新特性(二):针对HTML5的更新和Unobtrusive Validation

在前一篇文章中我们介绍了两个新特性:强类型数据控件和Bundling。

这次我们再介绍两个新特性:ASP.NET Web Forms 4.5中针对HTML5的更新和Unobtrusive Validation。

针对HTML5的更新

在ASP.NET Web Forms 4.5中,控件TextBox的TextBoxMode从之前的三个(SingleLine/MultiLine/Password)增加到了16个,详细见MSDN。

这样使得做表单类页面的时候,降会大大地降低验证的代码量,提高开发效率,将更多的人力资源放在业务逻辑上。

FileUpload控件终于开始支持多文件上传,可以通过AllowMultiple属性打开。

详细使用可以参照MSDN的FileUpload类说明。

当然还包含了如对HTML5表单的验证、HTML5的标记也可以使用“~”去根目录、增加UpdatePanel对HTML5表单的支持。

Unobtrusive Validation

所谓Unobtrusive Validation,就是一种隐式的验证方式,将验证代码和HTML分离。

要具体了解其改进,我们先看看ASP.NET Web Forms 4.5之前是怎么处理验证逻辑的。

我们在页面中添加了这个简单的输入表单。

1<body>
2<formid="form1"runat="server">
3<div>
4<ul>
5<li>
6<asp:TextBoxID="TextBox_Number"runat="server"TextMode="SingleLine"></asp:TextBox>
7<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"
8ErrorMessage="*Required"
9ControlToValidate="TextBox_Number"
10EnableClientScript="true"></asp:RequiredFieldValidator>
11<asp:RangeValidatorID="RangeValidator1"runat="server"
12ControlToValidate="TextBox_Number"
13ErrorMessage="*Range 10~100"
14MaximumValue="100"
15MinimumValue="10"></asp:RangeValidator>
16</li>
17<li>
18<asp:ButtonID="Button1"runat="server"Text="Submit"/></li>
19</ul>
20</div>
21</form>
22</body>

当我们查看页面生成的源代码的时候,会发现下面这样的内容。

后台将验证的JS代码放在了页面中,而当页面验证逻辑很复杂的时候,会产生大量的内联代码,在后面对页面做优化(如JS压缩,CDN,页面压缩)、维护的时候很不方便。

而在ASP.NET Web Forms 4.5中可以将此类的验证逻辑做分离。

可以在Web.config中添加下面这样的配置。

1<appSettings>
2<!--启用Unobtrusive Validation,默认开启-->
3<addkey="ValidationSettings:UnobtrusiveValidationMode"value="WebForm"/>
4
5<!--关闭Unobtrusive Validation-->
6<!--<add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>-->
7</appSettings>

或者在Application_Start中添加此段即可。

1voidApplication_Start(objectsender, EventArgs e)
2{
3//Enabling UnobtrusiveValidation application wide
4ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.WebForms;
5}

而如果只想控制某个页面开启此功能只需加上这段代码。

1Page.UnobtrusiveValidationMode = System.Web.UI.UnobtrusiveValidationMode.WebForms;

现在我们再来看看生成到客户端的HTML代码的样子。

我们发现,验证类的信息已经变成了HTML5中的表单特有的属性data-*

而页面中的内联JS等内容都已经被处理,且自动引入了jQuery进行验证,这部分可以参考Unobtrusive JavaScript。

http://www.jsqmd.com/news/1321877/

相关文章:

  • Zotero内存优化与彻底清理指南:解决卡顿与卸载难题
  • Apache Dubbo - go v3.3.2 发布:内核加固、能力扩展,多项特性升级!
  • AiTM 中间人钓鱼成为律所首要初始访问威胁的机理、行业诱因与分层防御体系研究
  • Material-UI使用
  • (2026年8月更新)洛阳甲醛检测公司怎么选:只做检测、不做治理的专业 CMA 资质实验室——醛清测研甲醛检测中心室内空气及环境检测 - 创达咨询
  • Android 中Dialog最佳实践
  • 宏、宏定义
  • 芯片OS测试:从稳定性到电源管理的量产关键验证
  • 漏洞挖掘高手的核心方法论与实战技巧
  • 千里求医路,重症病人高铁转运的平稳与温度 - AZJ888
  • NVIDIA GPU 与服务器型号匹配查询
  • TongRDS实战:从零构建MySQL高可用集群与读写分离架构
  • 字体设计如何助力读写障碍者:从原理到实践的包容性设计指南
  • Web漏洞扫描工具:核心价值与主流方案解析
  • WinBtrfs终极指南:3种方法在Windows上完美访问Linux Btrfs文件系统
  • 坚持减脂日程
  • 全国游客选潮汕地接 稻人旅行社护城河深厚领跑本地落地接待 - 互联网科技品牌测评
  • Java后端Base64图片压缩实战:BufferedImage与ImageIO应用详解
  • 【生成式AI数据管道设计禁区】:LLM微调元数据治理缺失导致的3次P0事故复盘
  • 2026 年 7 月新发布:邯郸口碑好的企业大门石牌坊生产厂家怎么联系,花百万做这门脸竟还踩坑?看完你再也不用交冤枉钱! - 行业推荐官[官方】--
  • 开源Godot 2D Builder:高效构建游戏场景的可视化工具
  • FreeIPA与Ambari集成实现企业级Kerberos认证
  • 北京产业园入驻流程哪家服务省心:【博亚信诚】一站式办 - 17328623207
  • 抖音下载工具的技术架构与异步任务调度实现
  • 免费自动抠图工具全搜罗:2026年网页、手机、电脑端实用方案汇总 - 耶斯去水印
  • 抖音无水印下载终极指南:5分钟掌握全平台内容保存技巧
  • UE5.5 VR项目UI开发:从交互原理到性能优化的实战指南
  • c++-对象模型
  • 2026 年至今,牡丹知名的匹布硅胶印花加工源头厂家哪家强,做印花的都在找它?居然能让匹布印花的质感和效率翻番!-德龙匹布印花 - 领域鉴赏官
  • BepInEx 6.0.0在Unity游戏中的稳定性问题深度解析与解决方案