1、首先要了解为什么要进行服务器端验证。要清楚,来自的网络的信息都是不能信任的。

   2、虽然后台可以验证,但是并没有前端那么好的体验效果或者方便。

   3、综合前面利弊,MVC的框架可以帮助处理这些琐事。

   4、了解MVC数据注解相关内容。

        一般特性:

       Required,该特性指的是当属性类型的值是null或空时,Required特性将引发的验证错误,用法如 [required]

       StringLength,该特性指的是当属性类型的值是属性的长度超过了设置值,将引发验证错误,用法如 [StringLength(160,MininumLength=3)], 这里设置了最大长度,也设置了最小长度。

       Range,该特性指的是当属性类型的值的最大值和最小值,用法如[Range(5,30)]

       特殊使用:

       Remote,该特性可以利用服务器端的回调函数执行客户端的验证逻辑。用法如

       [Romote("CheckUserName","Account")]

        public string UserName{get;set;}

        控制器里写Remote的CheckUserName代码

        public JsonResult CheckUserName(string username)

        {

        var result=Membership.FindUsersByName(username).Count==0;

        return Json(result,JsonRequestBehavior.AllowGet);

        }  

        Compare,该特性主要用于确保模型对象的两个属性拥有相同的值。避免顾客输入错误,往往要求输入两次e-mail地址,用法如

        [RegularExpression(@"[A-Za-z0-9._%+-]+@[A_Za-z0-9.-]+\.[A-Za-z]{2,4}")]

        public string Email{get;set;}

        [Compare("Email")] 

        public string EmailConfirm{get;set;}

   5、现在问题来了,如何设置任性话的提示信息呢,这里MVC人性化的设置了ErrorMessage属性来设定特性的错误信息,ErrorMessage是每个

        验证特性中用来设置错误提示消息的参数名称,事例用法如下:

        [Required(ErrorMessage="Your last name is required")]

        [StringLength(160,ErrorMessage="LastName is too long")]

        public string LastName{get;set;}