常用验证特性:
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
[Required] 必填
[StringLength(20)] 字符长度限制20
[StringLength(255,MinimumLength=6)] 字符最长255,最短6
[RegularExpression(@"^[1-9]\d*$",ErrorMessage="请输入正整数")] 正则表达式
[Range(0,1000)] 限定数值在0-1000
using System.Web.Mvc;
[Remote("ActionName","ControllerName")] 服务器回调函数执行客户端验证逻辑,例如:登录名不得重复
[Compare("PasswordConfirm")] 两个属性值相同,如:密码输入2次
自定义错误提示及本地化:
[Display(Name="用户名")] 将属性名称的友好名称
[Required(ErrorMessage="{0}为必填项")] 其中{0}表示属性名称或被本地化的名称
[Required(ErrorMessageResourceName="RoleName_Error",ErrorMessageResourceType=typeof(Resources)] 使用资源文件本地化,Resources为资源文件名,RoleName_Error 为资源文件中一个Name
验证和模型绑定:
1.在模型执行绑定时进行验证
2.模型绑定默认隐式执行,使用控制器的UpdateModel或TryUpdateModel可以显示执行。
验证和模型状态:
模型状态不仅包含模型属性的所有值,而且包含其相关的错误信息。
ModelState.IsValid==false
ModelState.IsValidField("UserName")==false
ModelState["UserName"].Errors.Count>0
其他特性:
[ScaffoldColumn(false)] 在EditorForModel和DisplayForModel的Html辅助方法渲染时,不会显示。
[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString="{0:c}")] 格式化字符,显示金额为2位小数。
[ReadOnly(true)] 属性只读,但Html辅助仍会显示。【using System.ComponentModel】
[DataType(DataType.EmailAddress)] 特定用途信息