①利用数据注解进行验证
②创建自定义的验证逻辑
③模型元数据注解的用法
①先创建数据源
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 这个指自定义模板,后面将