①利用数据注解进行验证

②创建自定义的验证逻辑

③模型元数据注解的用法

①先创建数据源

1,创建我们的Model  Order

2,创建控制器带EF 选择模型为Order

当你运行的时候会报错,需要代码迁移    code First 更新数据库 这篇文章可解决这个问题。

3,添加,不做处理的时候,显示的是这个

②验证注解的使用

2.1自定义错误提示信息及其本地化

2.2 注解的后台原理

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

1.验证和模型绑定

默认情况下,ASP.NET MVC框架在模型绑定时执行验证逻辑,在操作方法带有参数时,就会隐式地执行模型绑定。模型绑定器一旦使用新值完成对模型属性的更新,就会利用当前的模型元数据获得模型的所有验证器。模型绑定器捕获所有失败的验证规则并把它们放入模型状态中。

2.验证和模型状态

模型绑定主要的副产品是模型状态(ModelState)。模型状态不仅包含了用户想放入模型属性中的所有值,也包括与每个属性相关联的所有错误。如果在模型状态中存在错误,ModelState.IsValid就返会flase.

列如: 把LastName做了非空验证,在模型绑定之后,下面都会返回true

我们一般会使用HTML的辅助方法:

2.3.控制器操作和验证错误

控制器操作决定了在模型验证失败和验证成功时的执行流程。在验证成功时,操作通常会执行必要的步骤来保存或跟新信息。

2.4.自定义验证逻辑

①将验证逻辑封装在自定义的数据注解中 (可以在多个模型中重用逻辑)

②将验证逻辑封装在模型对象中

2.4.1 自定义注解

所有的验证注解(Required和Range)特性最终都派生基类 ValidationAttribute,它是个抽象类,在命名空间System.ComponentModel.DataAnnotaions中。

2.4.2 IValidatableObject

2.5 Display    改变现实字段

2.6 ScaffoldColumn

2.7 DisplayFormat

2.8 ReadOnly

2.9 DataType

2.10 HiddenInput

在命名空间 System.Web.Mvc中,运行时渲染一个type属性为hidden 的输入元素。

2.11 UIHint  这个指自定义模板,后面将

最新文章

  1. 浅析JS中的模块规范(CommonJS,AMD,CMD)
  2. C和指针 第五章 位数组
  3. 【java】企业级分布式搜索平台Solr视频教程
  4. 素数筛 poj 3518
  5. highcharts图表中级入门之xAxis label:X(横)坐标刻度值过长截断多行(换行)显示问题说明
  6. UIMenuController的使用,对UILabel拷贝以及定制菜单
  7. Java 的class文件关系
  8. java多线程使用HibernateSession 时报 No session 的解决办法(转)
  9. 一个用得比较广的微信API的XXE外部实体注入漏洞
  10. WSDL规则解释(转)
  11. Myeclipse10、Maven构建Javaweb项目
  12. Socket模拟HTTP请求
  13. javascript小记四则:用JS写一个滚动横条文字,可以根据需要进行修改;
  14. Axure环境安装,组件引入,使用示例
  15. mysql 性能优化思路 - mysqldumpslow /tmp/mysql-slow.log 字符集 utf-8 create database
  16. ISAPI多进程设置
  17. spring boot多模块项目找不到类
  18. SaaS公司融资的「22条军规 」(转)
  19. Alpha版本冲刺(十)
  20. linux nohup screen注解

热门文章

  1. [實現DDD] 第10章 聚合(1)設計原則
  2. http反向代理之haproxy详解
  3. POJ 2528——Mayor's posters——————【线段树区间替换、找存在的不同区间】
  4. POST 还是 GET?
  5. 今天研究Unity Ioc 框架
  6. RestTemplate请求出现401错误
  7. Redis 的Hashs(哈希表)数据类型
  8. scss-@extend
  9. Android之侧滑导航栏
  10. HBase伪分布式安装(HDFS)+ZooKeeper安装+HBase数据操作+HBase架构体系