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;}