zoukankan      html  css  js  c++  java
  • Model注解的后台原理

    Asp.net MVC的验证特性是由模型绑定器、模型元数据、模型验证器和模型状态组成的协调系统的一部分。

    1.验证和模型绑定

    默认情况下,Asp.net MVC框架在模型绑定石执行验证逻辑,在操作方法带有参数时,模型绑定将隐式地执行

    [HttpPost]
    Public ActionResult Create(Album album)
    {
          // todo.....  
    }

    也可利用控制器的UpdateModel或TryUpdateModel方法显示的执行模型绑定:

    [HttpPost]
    Public ActionResult Eidt(int id, FormCollection collection)
    {
           Var album = storeDB.Album.Find(id);
           if (TryUpdateModel(album))
           {
               //todo.....
           }
    }

    模型绑定器一旦使用新值完成对模型属性的更新,就会利用当前的模型元数据获得模型的所有验证器。Asp.net MVC运行时提供了一个验证器(DataAnnotationsModelValidator)来与数据注解一同工作。这个模型验证器会找到所有的验证特性并执行塔门包含的验证逻辑。模型绑定器捕获所有失败的验证规则并把它们放入模型状态中。

    2.验证和模型状态

    模型绑定的主要副产品就是模型状态(利用Controller派生类对象的ModelState属性可以访问到)。模型状态不仅包含了用户所有项放入模型属性里的值,也包括与每一个属性相关联的所有错误(还有所有与模型对象本身有关的错误)。如果在模型状态中存在错误,那么ModelState.IsValid就返回Fasle.

    如同运行时自动地向模型状态注入验证错误信息一样,它也能够自动地从模型状态中提取错误信息。

    控制器操作通常需要关心的问题是:模型状态是否有效?

  • 相关阅读:
    二叉树 排序二叉树-可以通过中序遍历得到排序的数据 二叉排序树时间复杂度O(logn),
    双链表排序
    Linux C 单链表 读取文件 并排序 实例并解释
    Linux 中文乱码问题
    双向链表排序
    玩转iOS开发
    Firefox OS简单介绍
    深入理解Dalvik虚拟机- 解释器的执行机制
    菜鸟学Struts——I18N对国际化的支持
    【leetcode】Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/lc-ant/p/3905313.html
Copyright © 2011-2022 走看看