MVC验证07-自定义Model级别验证
2014-03-04 23:14
309 查看
在一般的自定义验证特性中,我们通过继承ValidationAttribute,实现IClientValidatable,只能完成对某个属性的自定义验证。
使用IValidatableObject可以完成Model级别的验证。
□实现IValidatableObject接口的Model
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
可见,在Model级别就自定义了验证规则。
使用IValidatableObject可以完成Model级别的验证。
□实现IValidatableObject接口的Model
publicclassRegisterModel:IValidatableObject
{
publicintRegisterCount{get;set;}
publicintQutoa{get;set;}
//实现IValidatableObject接口方法,实现自定义验证
publicIEnumerable<ValidationResult>Validate(ValidationContextvalidationContext)
{
varresults=newList<ValidationResult>();
if(RegisterCount>Quota)
{
results.Add(newValidationResult("报名人数已经超过名额限制",newstring[]{"RegisterCount"}));
}
if(RegisterCount>3)
{
results.Add(newValidationResult("单次最多报名三位学员",newstring[]{"RegisterCount"}));
}
returnresults;
}
}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
可见,在Model级别就自定义了验证规则。
相关文章推荐
- MVC验证07-自定义Model级别验证
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- ASP.NET MVC 3 使用Model自定义验证的样式
- 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容
- MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- MVC 验证和异常处理 分开处理Model级别和属性级别验证
- MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息
- 第十节:数据批注(DataAnnotationModel)和自定义验证(包括Model级别的验证)
- ASP.NET MVC的客户端验证:jQuery验证在Model验证中的实现
- mvc中动态给一个Model类的属性设置验证
- ASP.NET MVC 3.0(九): MVC 3.0 验证你的Model
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- MultipleRegularExpressionAttribute MVC中扩展自定义验证规则
- ASP.NET MVC Model验证(四)
- MVC网站开发:自定义扩展方法ModelStateExtension获取ModelState中的错误信息
- ASP.NET mvc 自定义验证和Filter过滤器传参
- ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】【续Model验证部分】