MVC4数据注解和验证
在传统的asp.net开发中,数据的验证一直是个火热的话题,无论是客户端进行验证还是服务器进行验证,通常我们都会为了一个简单的业务而要去写非常复杂的验证方法。在MVC中,MVC为我们提供了各种数据注解和数据验证的特性,很方便的让我们能实现数据验证这一繁琐的工作,以下是我整理的常见的数据注解和验证的DOME!注:自定义验证特性并未写在此篇中!
model中的验证注解特性:
public
class
StuInfo
{
public
int
ID {
get
;
set
;}
[Display(Name =
"姓名"
)]
//设置要显示的字段名
[Required(ErrorMessage =
"您需要填写{0}"
)]
//设置为必须字段 已经错误提示
[StringLength(50, MinimumLength = 3)]
//设置最大长度和最小长度
public
string
Name {
get
;
set
;}
[Display(Name =
"年龄"
)]
[Range(1, 150, ErrorMessage =
"年龄填写不正确!"
)]
//设置 值范围
public
int
Age {
get
;
set
;}
[Display(Name =
"身高"
)]
[Range(
typeof
(
decimal
),
"50.00"
,
"250.00"
,ErrorMessage =
"身高超出指定范围"
)]
public
decimal
Height {
get
;
set
;}
[Display(Name =
"生日"
)]
[DataType(DataType.Date,ErrorMessage =
"{0}格式不正确"
)]
//设置数据类型以及错误提示
public
DateTime Birthday {
get
;
set
;}
[Display(Name =
"电话"
)]
[Remote(
"CheckPhone"
,
"StuInfo"
, ErrorMessage =
"{0}已被注册"
)]
//在指定的Conteroller中的通道(route)中验证数据
public
string
Phone {
get
;
set
;}
[Display(Name =
"地址"
)]
[DataType(DataType.MultilineText)]
public
string
Address {
get
;
set
;}
[Display(Name =
"电子邮箱"
)]
[RegularExpression(
@"(\w)+(\.\w+)*@(\w)+((\.\w+)+)"
,ErrorMessage =
"{0}格式不正确"
)]
//正则验证
public
string
Email {
get
;
set
;}
[Display(Name =
"再次输入电子邮箱"
)]
[Compare(
"Email"
,ErrorMessage =
"{0}两次输入不一致"
)]
//设置比较两个字段的值
public
string
EmailConfirm {
get
;
set
;}
[Display(Name =
"密码"
)]
[DataType(DataType.Password)]
public
string
Password {
get
;
set
;}
[Display(Name =
"备用电子邮箱"
)]
[DataType(DataType.EmailAddress,ErrorMessage =
"{0}格式不正确"
)]
public
string
email_B {
get
;
set
;}
}
|
远程验证的通道:
public
JsonResult CheckPhone(
string
phone)
{
var
result= StuInfoBll.FindPhone(phone).count == 0;
return
Json(result, JsonRequestBehavior.AllowGet);
}
|
效果:
正常下的网页:
值范围、值类型验证效果:
正则验证和比较字段值效果:
数据类型验证效果: