MVC Model 数据注解与验证

常用验证特性:

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)] 特定用途信息

上一篇:Asp.net 面向接口可扩展框架之消息队列组件


下一篇:修改eclipse默认编码方式