Model

☆自动验证器[Required]: 字段不能为空或空字符串 [Datatype(Datatype.xxx)]: 验证数据类型,可以是EmailAddress、Date等,前端对应type属性,可以进行前端验证但是显示的msg不是这里的Errormsg, 要引入jqvalid的中文提示,否则是一个默认的英文提示 [DisplayName=]: 展示的Html.LabelFor/DisplayNameFor会显示这个值 [StringLength(max,[MinimumLength=]]: 字符串长度限定 [Range(a,b)]: 必须介于ab之间,也可用于非int如日期:[Range(typeof(DateTime),"01/01/2016","01/01/2017")] [Compare("另字段")]: 校验字段相同 [RegularExpression("正则")]: 正则表达式验证,正则表达式是基于required的,range、compare、length都不需要require [remote]: 用于必须和数据库交互的验证通过AJAX验证,使用时前两个参数为行为控制器, 这个行为传入参数为该字段,返回值为Json(bool,允许get)。 要注意使用时做双重验证,服务端再次验证,验证如果不对的话直接ModelState.AddModelError("username","用户名已存在"); 然后判断模型验证状态。 [DisplayFormat()]: 格式化显示结果 日期:[DisplayFormat(DataFormatString="{0:dd/MM/yyyy HH/hh:mm:ss}")] Null显示为xxx:[DisplayFormat(NullDisplayText="xxx")] ☆客户端验证: 以上验证方式配合jq.validate可以不用多写任何代码实现客户端验证。只需要将jq jq.validate jq.validate.unobtrusive三个js文件引入。另外确保appSetting中有如下设置,(默认都有) <add key="ClientValidationEnable" value="true"/> <add key="UnobtrusiveJavaScriptEnable" value="true"/> ☆自定义验证: 写一个类继承ValidationAttribute,复写bool IsValid(param)方法