zoukankan      html  css  js  c++  java
  • MVC验证03-自定义验证规则、禁止输入某些值

    本文继续体验自定义验证规则,需求是禁止输入某些值。本文与前2篇相关,请参考:
    MVC验证01-基础、远程验证  
    MVC验证02-自定义验证规则、邮件验证 

      自定义验证特性继承ValidationAttribute,并实现IClientValidatable接口

    展开

      把自定义属性打到View model的属性上

    展开

    [NoInput("demo",ErrorMessage = "不能使用此名称")],即当输入demo的时候就报错。

      扩展jquery的验证方法jQuery.validator.noinput.js并注册

    jquery的验证扩展方法的逻辑基本上与自定义特性IsValid()方法一致。
    自定义特性rule.ValidationParameters["input"]的键input要传递给$.validator.unobtrusive.adapters.addSingleVal()方法。

    展开

      Register.cshtml视图

    展开

    效果:

    禁止输入某个值

      如果需要禁止多个值,需要重写自定义验证特性

    这时候自定义特性的Input属性类型变成了string[],因为要判断多个值。
    但前台rule.ValidationParameters["input"]存储的应该是string类型,所以保存的时候要把Input数组元素join起来。

    展开

      把自定义属性打到View model的属性上,但构造函数是用逗号分隔的字符串

    展开

    [NoInput("demo,jack",ErrorMessage = "不能使用此名称")],当输入demo或者jack的时候都会报错。

      扩展jquery的验证方法jQuery.validator.noinput1.js并注册

    需要把rule.ValidationParameters["input"]存储的值split成数组,在遍历判断。

    展开

      Register.cshmtl要引用jQuery.validator.noinput1.js

    展开

    效果:

    禁止输入某些值

  • 相关阅读:
    解决安装Visual Studio 2012后SQL Server 2008 远程过程调用失败的问题
    解决 Visual Studio 2012 有时不能调试的问题
    WPF实现窗体最小化后小图标在右边任务栏下
    WinForm实现窗体最小化后小图标在右边任务栏下
    C# 开机启动代码
    C# ?? 操作符示例
    WPS页面设置
    PCA(主成分分析)和LDA详解
    MySQL命令行导入sql文件时出现乱码解决方案
    IKAnalyzer 独立使用 配置扩展词典
  • 原文地址:https://www.cnblogs.com/darrenji/p/3580253.html
Copyright © 2011-2022 走看看