MVC中经常会用一些服务端对Model的验证。

服务端验证要继承自ValidationAttribute,并重写IsValid虚方法来自定义自己的验证规则。

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
string Str = value as string;
string errorMessage = FormatErrorMessage(validationContext.DisplayName);
if (!string.IsNullOrEmpty(Str) && Str.Length >= _minCount)
{
return ValidationResult.Success;
}
return new ValidationResult(errorMessage);
}

比如上边校验字符串不能少于指定字符,否则show出来用户自定义的message。

 [ListCountAttribute(3,ErrorMessage="client name at least has 3 words")]
public string Client { get; set; }

扩展ValidationAttribute 1的更多相关文章

  1. ASP.NET MVC验证标注的扩展-checkbox必选

    我们知道ASP.NET mvc提供一些表单的验证标注,比如必填属性RequiredAttribute 但是这个属性不适合选择框的必选 但是很多时候,我们却是需要一些必选的单选框 比如网站注册的时候,需 ...

  2. ASP.NET MVC 扩展数据验证 转

    此文只作记录 public class MaxWordsAttribute : ValidationAttribute { public MaxWordsAttribute(int maxWords) ...

  3. MVC 扩展方法特点

    .NET MVC 3中扩展方法特点: (1)扩展类的名称以Extensions结尾: (2)扩展类的类型是static: (3)扩展方法至少有一个参数,第一个参数必须指定该方法作用于哪个类型,并且该参 ...

  4. ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上

    原文:ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上 ASP.NET MVC默认采用基于标准特性的Model验证机制,但是只有应用在Model ...

  5. 通过扩展改善ASP.NET MVC的验证机制[实现篇]

    原文:通过扩展改善ASP.NET MVC的验证机制[实现篇] 在<使用篇>中我们谈到扩展的验证编程方式,并且演示了本解决方案的三大特性:消息提供机制的分离.多语言的支持和多验证规则的支持, ...

  6. 通过扩展改善ASP.NET MVC的验证机制[使用篇]

    原文:通过扩展改善ASP.NET MVC的验证机制[使用篇] ASP.NET MVC提供一种基于元数据的验证方式是我们可以将相应的验证特性应用到作为Model实体的类型或者属性/字段上,但是这依然具有 ...

  7. 基于easyui的webform扩展(续)

    基于easyui的webform扩展(续) 回顾 <前端基于easyui的mvc扩展>.<前端基于easyui的mvc扩展(续)>.<基于easyui的webform扩展 ...

  8. 基于easyui的webform扩展

    基于easyui的webform扩展 回顾 <前端基于easyui的mvc扩展>.<前端基于easyui的mvc扩展(续)>前两篇介绍了mvc内如何基于easyui进行扩展,在 ...

  9. .NET 实用扩展方法

    .NET 实用扩展方法(持续更新...) 1. 字符串转换为可空数值类型(int, long, float...类似) /// <summary> /// 将字符串转换成32位整数,转换失 ...

随机推荐

  1. SqlServer性能优化 提高并发性能二(九)

    补充上一篇修改用非聚集索引: update Employee set age=age+1 from Employee with(index=nc_Employee_Age) where age< ...

  2. 如何用js定义数组,用js来拼接json字段

    定义js数组的方式有: var arr = (); var arr = []; var arr = new Array(); 如何拼接成一个json字段. <!DOCTYPE HTML PUBL ...

  3. maven不打包子模块资源文件

    在maven多模块项目中,对子模块中的测试文件不需要打包到目标项目中,以免产生影响.实现方法: 1. 将测试资源放在java/test/resources 目录下,mvn package默认不会将te ...

  4. EtherType

    EtherType is a two-octet field in an Ethernet frame. It is used to indicate which protocol is encaps ...

  5. 问题:https与http有什么区别啊?

    HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议  它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息.它使用安全套接字 ...

  6. pageHelp的使用

    以前使用ibatis/mybatis,都是自己手写sql语句进行物理分页,虽然稍微有点麻烦,但是都习惯了.最近试用了下mybatis的分页插件 PageHelper,感觉还不错吧.记录下其使用方法. ...

  7. js操作做GridView

    一:获取当前选中行的数据 function fun_selectedInfo() { //获取当前鼠标选中元素 var e=event.srcElement; //获取当前元素所在行号 var row ...

  8. 数据库SQL优化总结

    1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  9. split,slice,splice,replace的用法

    split()方法用于把一个字符串分割成字符串数组 str.split("字符串/正则表达式从该参数制定额地方分割str",可选,可指定返回数组的最大长度,如果没设置参数,整个字符 ...

  10. linux日常运维管理

    1.查看系统负载命令 w命令:主要查看cpu负载 load average:一分钟内负载 五分钟内负载 十五分钟内负载 负载跟cpu核心数有关,查看cpu核心数: # cat /proc/cpuinf ...