好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

针对HTML5的更新和Unobtrusive Validation

针对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       < form  id ="form1"  runat ="server" >
 3           < div >
 4               < ul >
 5                   < li >
 6                       < asp:TextBox  ID ="TextBox_Number"  runat ="server"  TextMode ="SingleLine" ></ asp:TextBox >
 7                       < asp:RequiredFieldValidator  ID ="RequiredFieldValidator1"  runat ="server"
 8                           ErrorMessage ="*Required"
 9                           ControlToValidate ="TextBox_Number"
10                           EnableClientScript ="true" ></ asp:RequiredFieldValidator >
11                       < asp:RangeValidator  ID ="RangeValidator1"  runat ="server"
12                           ControlToValidate ="TextBox_Number"
13                           ErrorMessage ="*Range 10~100"
14                           MaximumValue ="100"
15                           MinimumValue ="10" ></ asp:RangeValidator >
16                   </ li >
17                   < li >
18                       < asp:Button  ID ="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       < add  key ="ValidationSettings:UnobtrusiveValidationMode"  value ="WebForm" />
4  
5       <!-- 关闭Unobtrusive Validation -->
6       <!-- <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/> -->
7     </ appSettings >

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

1   void  Application_Start( object  sender, EventArgs e)
2  {
3       // Enabling UnobtrusiveValidation application wide
4      ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.WebForms;
5  }

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

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

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

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

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


作者: Parry  
出处: http://HdhCmsTestcnblogs测试数据/parry/  
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

分类:  00.ASP.NET

作者: Leo_wl

    

出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于针对HTML5的更新和Unobtrusive Validation的详细内容...

  阅读:33次