zoukankan      html  css  js  c++  java
  • MVC之参数验证(二)

      MVC内部针对这此验证是如何实现的咧???现在我们就来分析一下这此验证的背后故事....

    1、ModelValidator与ModelValidatorProvider

      虽然Model绑定方式的因绑定参数数据类型的不同有所差异,但ASP.NET MVC中总使用modelValidator的对象对需要验证的对象实施验证,ModelValidator对象提供了一个抽象方法Validate()。
      ModelValidator是由ModelValidatorProviders提供的,ModelValidatorProviders是一个抽象类,有个抽象方法GetValidators供开发人员获取所需验证的模型对象.

    2、参数验证(运用篇)

      已经和大家交流了个MVC中的模型绑定,自定义模型验证规则,分享了那么多到底有什么用咧??现在我来和大家来一个运用篇-参数验证。大家都知道了MVC的请求机制->客户端请求(Request)->路由器分析(Routing)->控制器工厂(ControllerFactory)->控制器(Controller)->调用方法(Action Invoke)->创建(ActionInvoke实例对象)->获取参数信息(GetParameterValue)->绑定模型(ModelBinder)->获取验证器(GetValidators)->验证模型->进入方法体(Action)->Response且验证机制是给予Model验证,那问题来了 如何我们只是一个简单的参数,如何实现验证咧?让我们一起看一个如下实例吧。。。
      A、重写AcionInvoke实例对象

      B、获取参数验证器(参数信息与参数属性说明

      C、绑定模型:尽然MVC验证给予Model验证,那我们就给参数动态创建一个模型(继承MVC自身的DefaultModelBinder类),如图:


    4、使用方法

      ModelValidator是由ModelValidatorProviders提供的;
      一、配置验证器提供者:

      二、配置ActionInvoke实例

      三、配置参数属性信息

     MVC验证不仅仅限与参数信息、Model验证,它还可以对所有对象实施验证功能,实现高内聚低耦合(eg:XML....)让我们的程式越来越灵活...

  • 相关阅读:
    ASP.NET WebAPI2 发布之后404 Not Found
    WPF MVVM TreeView 实现 右键选中 右键菜单
    Asp.Net MVC4+EF6 Code First 权限管理系统 源码下载
    C# Winform DataGrid 绑定List<> Or ObservableCollection<> 类型无法自动刷新问题
    VMWare 安装时报错 tools-windows.msi failed报错解决办法
    HashMap 扩容机制
    POI解析Excel封装工具
    poi API
    简单echars说明和使用
    比较运算符compareTo()、equals()、==之间的区别
  • 原文地址:https://www.cnblogs.com/tx720/p/5985827.html
Copyright © 2011-2022 走看看