MVC中的数据注解和验证

时间:2023-06-11 14:33:50
  • 数据注解和验证

  用户输入验证在客户端浏览器中需要执行验证逻辑. 在客户端也需要执行.

  注解是一种通用机制, 可以用来向框架注入元数据, 同时, 框架不只驱动元数据的验证, 还可以在生成显示和编辑模型的 HTML 标记时使用元数据.

    • 为验证注解订单

   应用程序使用 HTML 辅助方法 EditorForModel 来构建结算页面. EditorForModel 辅助方法为模型对象的每个属性构建一个编辑器, 生成表单.   

    • 验证注解的使用      

  数据注解特性定义在名称空间 System.ComponentModel.DataAnnotations 中(有些例外). 他们提供了服务器端验证的功能, 当在模型的属性上使用这些特性时, 框架也支持客户端验证. 在名称空间 DataAnnotations 中, 有4个特性可以用来应付一般的验证场合:

  [Required]

  [StringLength]

  [RegularExpression]

  [Range]

  System.Web.Mvc 中额外添加了两个验证特性:

  Remote 特性

  Compare 特性

    • 自定义错误提示消息及其本地化
    • 注解的后台原理
    • 控制器操作和验证错误
  • 自定义验证逻辑
    • 自定义注解
    • IValidatableObject

      一个模型对象可以通过实现 IValidatableObject 接口来实现对自身的验证.

  • 显示和编辑注解
    • Display

      Display 特性可为模型属性设置友好的"显示名称".

    • ScaffoldColumn

      ScaffoldColumn 特性可以隐藏 HTML 辅助方法渲染的一些特性.

    • DisplayFormat

      通过命名参数, DisplayFormat 特性可以用来处理属性的各种格式化选项.

    • ReadOnly

      如果需要确保默认的模型绑定器不使用请求中的新值来更新属性, 可在属性上添加 ReadOnly 特性.

    • DataType

      DataType 特性可为运行时提供关于属性的特定用途信息.

    • UIHint

      UiHint 特性给 ASP.NET MVC 运行时提供了一个模板名称, 以备调用模板辅助方法渲染输出时使用.

    • HiddenInput

      HiddenInput 在名称空间 System.Web.Mvc 中, 它可以告知运行时渲染一个 type 特性值为"hidden"的输入元素.