MVC验证(只验证指定字段)

简介:

在我上一篇文章中,对实体验证的方式是如果所有字段不满足条件将会向集合中迭代返回一个结果,但有时,我们不希望验证所有对象,可以只是修改指定字段,如用户修改密码功能,可以对实体验证只考虑原密码,新密码和确认密码就可以了,而如果验证所有字段反而有点多此一举了,所以,我对实体类的验证部分进行了一个改动

看代码

       /// <summary>
        /// 如果验证的字段为NULL表示验证所有字段
     /// </summary>
        public string[] ValidFields { get; set; }
     public virtual bool IsValid { get { return this.GetRuleViolations().Count() == 0; } }
      public virtual IEnumerable<RuleViolation> GetRuleViolations()
        {
            PropertyInfo[] propertyInfo = this.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
            if (ValidFields != null) propertyInfo = propertyInfo.Where(i => ValidFields.Contains(i.Name)).ToArray();
            foreach (var i in propertyInfo)
            {
                if (i.GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false) != null
                    && i.GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false).Count() > 0
                    && !((System.Data.Linq.Mapping.ColumnAttribute)i.GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false)[0]).CanBeNull
                    && !((System.Data.Linq.Mapping.ColumnAttribute)i.GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false)[0]).IsPrimaryKey)
                    if (i.GetValue(this, null) == null || string.IsNullOrEmpty(i.GetValue(this, null).ToString()))
                        yield return new RuleViolation("*", i.Name);
            }
        }
 

这样,如果我们希望对实体的指定字段进行验证,为ValidFields实体进行赋值就可以了,呵呵,是不是很方便 !

本文转自博客园张占岭(仓储大叔)的博客,原文链接:MVC验证(只验证指定字段),如需转载请自行联系原博主。

目录
相关文章
|
前端开发 Java 数据库连接
分组序列@GroupSequenceProvider、@GroupSequence控制数据校验顺序,解决多字段联合逻辑校验问题【享学Spring MVC】(中)
分组序列@GroupSequenceProvider、@GroupSequence控制数据校验顺序,解决多字段联合逻辑校验问题【享学Spring MVC】(中)
|
前端开发 .NET 数据安全/隐私保护
菜鸟入门【ASP.NET Core】15:MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
ReturnUrl实现 我们要实现returnUrl,我们需要在注册(Register)方法中接收传进的returnUrl并给它默认值null,然后将它保存在ViewData里面 然后我们定义一个内部方法来判断跳转returnUrl //内部跳转 private IActionR...
2582 0
|
存储 前端开发 Java
Spring MVC 中的数据绑定和验证机制是什么,如何使用
Spring MVC 中的数据绑定和验证机制是什么,如何使用
|
前端开发 安全 Java
分组序列@GroupSequenceProvider、@GroupSequence控制数据校验顺序,解决多字段联合逻辑校验问题【享学Spring MVC】(上)
分组序列@GroupSequenceProvider、@GroupSequence控制数据校验顺序,解决多字段联合逻辑校验问题【享学Spring MVC】(上)
分组序列@GroupSequenceProvider、@GroupSequence控制数据校验顺序,解决多字段联合逻辑校验问题【享学Spring MVC】(上)
|
设计模式 前端开发 druid
Java Web实战 | MVC案例:用户登录验证
本文结合图1的多层设计架构,以用户登录验证应用程序为例,说明如何将MVC模式应用于Web应用程序的开发,具体步骤如下所述。
199 0
Java Web实战 | MVC案例:用户登录验证
|
前端开发 Java Spring
《Spring MVC》 第八章 拦截器实现权限验证、异常处理
《Spring MVC》 第八章 拦截器实现权限验证、异常处理
231 0
|
JSON 前端开发 JavaScript
Spring MVC 实战:响应字段默认值设置
前言 到今天为止,相信大家开发 Web 项目应该都是前后端分离了吧?前后端分离中一般会使用 json 作为前后端的数据交换格式。json 中可以包含数值、字符串、json 对象、数组等等。
359 0
Spring MVC 实战:响应字段默认值设置
|
JSON 前端开发 Java
Spring MVC 实战:复杂类型接收表单字段
前言 这是 Spring MVC 处理器方法参数实战的第二篇,我们来尝试使用复杂的成员变量类型来接收 form 表单字段。 对于普通的 Java Web 项目,我们一般通过 ServletRequest#getParameter 方法来获取字符串类型的 form 表单字段值。
239 0
Spring MVC 实战:复杂类型接收表单字段
|
前端开发 JavaScript API
NET MVC第七章、jQuery插件验证
NET MVC第七章、jQuery插件验证
182 0
NET MVC第七章、jQuery插件验证
|
前端开发 数据库 计算机视觉
关于MVC中模型model的验证问题
关于MVC中模型model的验证问题
144 0
关于MVC中模型model的验证问题