第三章 Models模块属性详解

简介: 摘自:http://www.cnblogs.com/xdotnet/archive/2012/03/07/aspnet_mvc40_validate.html   了解了这些就可以对MVC进一步认识,相信很多人都对MVC中三个模块有一定的认识。

摘自:http://www.cnblogs.com/xdotnet/archive/2012/03/07/aspnet_mvc40_validate.html

 

了解了这些就可以对MVC进一步认识,相信很多人都对MVC中三个模块有一定的认识。今天我们主要来看一下Models模块,这个和我们三层里用的 实体类有点相似,不同的是这里的属性需要添加一些验证属性(Attribute)或其他的一些Filter(过滤器)。在MVC中验证属性主要包含在 System.ComponentModel.DataAnnotations.dll程序集中,所以需要对其添加引用。

 

首先我们先看一下注册模型的代码,然后对其中使用到的验证属性等进行进一步的认识,代码如下。

复制代码
 1  public  class RegisterModel
 2     {
 3         [Required]
 4         [Display(Name =  " User name ")]
 5          public  string UserName {  getset; }
 6 
 7         [Required]
 8         [DataType(DataType.EmailAddress)]
 9         [Display(Name =  " Email address ")]
10          public  string Email {  getset; }
11 
12         [Required]
13         [StringLength( 100, ErrorMessage =  " The {0} must be at least {2} characters long. ", MinimumLength =  6)]
14         [DataType(DataType.Password)]
15         [Display(Name =  " Password ")]
16          public  string Password {  getset; }
17 
18         [DataType(DataType.Password)]
19         [Display(Name =  " Confirm password ")]
20         [Compare( " Password ", ErrorMessage =  " The password and confirmation password do not match. ")]
21          public  string ConfirmPassword {  getset; }
复制代码

22     } 

一、RequiredAttribute属性

 使用这个标记的属性表示必须,如果客户端返回的数据中没有设置此项,则在ModelState.IsValid属性将为false。错误信息将会包含在ModelState对象里,客户端就可以通过@Html.ValidationMessageFor来显示模型属性验证错误信息。让我们打开VS11自带的Internet Application项目,并使用Page Inspector来调试程序,双击注册按钮,我们就可以看到这个验证的相关信息,如下图所示。

 

 在图中就可以看到这个注册模型RequiredAttribute验证标记的验证信息,在input标记中的data-val-required 属性呈现的是严重信息,这些属性都是微软扩展的供JQuery和其验证扩展库使用。如果你对客户端验证感兴趣可以研究一下Scripts目录下的 “jquery.validate.js”和“jquery.validate.unobtrusive.js”,这样你就会知道他是如何工作的了。

 

二、DisplayAttribute属性

 这个属性主要用于前台显示时的字符串,比如注册模型中的UserName属性在前台显示的就是“User name”,从上面图片中的HTML代码中就可以看出来。当然我们也可以把它改成“用户名”,这样执行后就不会显示英文了。

 

三、StringLengthAttribute属性

 这个属于验证属性,用于判断当前属性字符串长度,可以用设置最小值和最大值。这个比较少用,我做过的项目只有在密码上回用这个,其他一般会给正则表达式进行验证。

 

四、CompareAttribute属性

 这个验证属性主要用于对比两个属性的值是否相同,一般用于密码和确认密码,因为这两个是要一样的。

 

五、RegularExpressionAttribute属性 
 这个属性将使用参数里设置的正则表达式来验证当前属性是否合法,这个我会比较常用,像用户注册等等都会对其进行验证。

 

六、RangeAttribute属性

 这个属性为范围区间验证,可以是数字,也可以是对象,需要指定最小值和最大值,如果不是数字还需要指定对比的类型。

 

七、RemoteAttribute属性

 这个属性实现了远处验证,参数主要是设置服务端的控制器和方法名称,比如我们的要验证注册模型中的UserName是否已经被注册,就可以使用这个Remote属性。

相关文章
|
4月前
|
机器学习/深度学习 数据可视化 PyTorch
PyTorch基础之模型保存与重载模块、可视化模块讲解(附源码)
PyTorch基础之模型保存与重载模块、可视化模块讲解(附源码)
46 1
|
5月前
|
存储 JavaScript 前端开发
08 Django模型 - 定义模型
08 Django模型 - 定义模型
16 0
|
5月前
|
数据库 Python
09 Django模型 - 模型成员
09 Django模型 - 模型成员
21 0
|
9月前
|
数据库 索引 Python
09-Django-基础篇-定义模型类
09-Django-基础篇-定义模型类
|
XML 安全 前端开发
odoo 开发入门教程系列-模型之间的关系(Relations Between Models)
odoo 开发入门教程系列-模型之间的关系(Relations Between Models)
107 0
|
Java iOS开发 C++
Objective-C类别(category)和扩展(Extension)的基本概念
Objective-C类别(category)和扩展(Extension)的基本概念
163 0
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch学习笔记(五):模型定义、修改、保存
Module 类是 torch.nn 模块里提供的一个模型构造类 (nn.Module),是所有神经⽹网络模块的基类,我们可以继承它来定义我们想要的模型; PyTorch模型定义应包括两个主要部分:各个部分的初始化(_init_);数据流向定义(forward) 基于nn.Module,可以通过Sequential,ModuleList和ModuleDict三种方式定义PyTorch模型。
633 0
|
JavaScript 前端开发 关系型数据库
Django 定义模型2.1
Django 定义模型2.1
118 0
|
SQL 存储 前端开发
Django入门-5:模型的基本使用1-模型定义
Django入门-5:模型的基本使用1-模型定义
124 0
Django入门-5:模型的基本使用1-模型定义
|
数据库 Python
Django入门-5:模型的基本使用3-模型成员&创建对象
Django入门-5:模型的基本使用3-模型成员&创建对象
89 0