ASP.NET MVC5中Model层开发,使用的数据注解有三个作用:

  1. 数据映射(把Model层的类用EntityFramework映射成对应的表)
  2. 数据验证(在服务器端和客户端验证数据的有效性)
  3. 数据显示(在View层显示相应的数据)

数据注解相关的命名空间如下:

DataAnnotations名称空间中包含主要的数据注解,Schema名称空间中包含一些数据映射的数据注解,Mvc名称空间中包含字符、数组、数值长度和属性比较的数据注解,Security名称空间中包含MemberShipPassword注解特性。

数据映射和验证相关的数据注解:

[Required]  必填字段
[MaxLength]  指定属性中允许的数组或字符串数据的最大长度
[MinLength] 指定属性中允许的数组或字符串数据的最小长度
[StringLength]                       指定最小和最大字符长度
[Range]   指定数值范围

数据验证相关的数据注解

[Remote] 使用 jQuery 验证插件远程验证程序的特性
[FileExtension] 验证文件扩展名
[Compare] 比较两个属性的值
[RegularExpression] 使用正则表达式验证
[CustomValidation]  自定义验证方法
[DataType] 指定要与数据字段关联的附加类型的名称
[EmailAddress] 电子邮件地址(相当于[DataType(DataType.Email)])
[Phone] 电话(同上)
[CreditCard] 信用卡号码(同上)
[Url]  验证URL(同上)
[MemberShipPassword]         验证密码字段是否满足成员资格提供程序的当前密码要求

数据映射相关的数据注解:

[Key] 主键字段
[Column] 数据库列属性映射
[NotMapped] 不要创建对应的字段
[Table] 指定类将映射到的数据库表
[ForeignKey] 表示关系中用作外键的属性
[DatabaseGenerated]            指定数据库生成属性值的方式(EF不追踪属性的变化)

数据显示相关的数据注解:

[DisplayName] 指定本地化的字符串(习惯用语类)
[Display] 指定本地化的字符串(习惯用语属性)
[DisplayFormat] 设置数据字段的格式
[ReadOnly]  指定该特性所绑定到的属性是只读属性还是读/写属性
[EditAble] 指示数据字段是否可编辑
[HiddenInput] 指示是否应将属性值或字段值呈现为隐藏的 input 元素
[ScaffoldColumn]                    指定类或数据列是否使用基架
[UIHint]  指定动态数据用来显示数据字段的模板

其他

[DisplayColumn]                    将所引用的表中显示的列指定为外键列
[Description]

可视化设计器在引用组件成员时可以显示指定的说明

(命名空间:System.ComponentModel.DescriptionAttribute

1、数据验证相关的数据注解继承ValidationAttribute类,都有一个ErrorMessage属性用来显示错误提示。

如:[Required(ErrorMessage="此项不能为空")]。

2、数据映射中Int类型和DateTime类型在数据库中默认不允许为NULL,如果需要设置为NULL,使用可空类型即可(使用Int?或者DateTime?)。

初学ASP.NET MVC顺便总结了一下数据注解(并不包含所有的内置数据注解),每个数据注解的具体使用请查询MSDN,不当的地方望指正。

MVC5中Model设置属性注解的更多相关文章

  1. MVC5中Model层开发数据注解

    ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...

  2. MVC5中Model层开发数据注解 EF Code First Migrations数据库迁移 C# 常用对象的的修饰符 C# 静态构造函数 MSSQL2005数据库自动备份问题(到同一个局域网上的另一台电脑上) MVC 的HTTP请求

    MVC5中Model层开发数据注解   ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证( ...

  3. jQuery中animate设置属性的一个问题

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. mapstruct 的 mapstruct-processor 自动生成的 Impl 文件中未设置属性值(时好时坏)

    配置依赖和注解处理器 ... <properties> <org.mapstruct.version>1.4.2.Final</org.mapstruct.version ...

  5. DedeCms 标签中channelartlist设置属性标签样式的方法

    实现的效果如下: {dede:channelartlist typeid='6' row='3' currentstyle='current'} <li class='{dede:field.c ...

  6. ASP.NET MVC5中的数据注解

    ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...

  7. ASP.NET MVC5中的数据注解(转载)

    ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...

  8. ASP.NET MVC5中的Model验证

    Model验证是ASP.NET MVC中的重要部分,它主要用于判断输入的数据类型及值是否符合我们设定的规则,这篇文章就介绍下ASP.NET MVC中Model验证的几种方式. 后台验证 DataAnn ...

  9. java自定义注解知识实例及SSH框架下,拦截器中无法获得java注解属性值的问题

    一.java自定义注解相关知识 注解这东西是java语言本身就带有的功能特点,于struts,hibernate,spring这三个框架无关.使用得当特别方便.基于注解的xml文件配置方式也受到人们的 ...

随机推荐

  1. Java返回泛型的方法-实例

    package com.frank.app; import java.io.UnsupportedEncodingException;import java.lang.reflect.Type;imp ...

  2. unity 渲染第一步

    unity 不是将宇宙投影到水晶球里,而是:将整个 view frustum 投影成 一个 cube .------ <unity 渲染箴言> 观察一下,整个 view frustum 以 ...

  3. unity动态加载FBX模型(Http下载到Rescources文件,场景Load直接调用):

    using UnityEngine; using System.Collections; using System.IO; using System.Net; using System; using ...

  4. JAVA学习3:Eclipse中集成Tomcat

    问题: 很多时候在Eclipse中启动Tmocat后,不能访问本机的localhost:8080主页,并且其他项目也不能访问. 原因: 打开Tomcat下的webapp后也找补到项目目录,这是因为Ec ...

  5. 局域网电脑之间ping不通解决办法

    局域网电脑之间ping不通一般都是防火墙的原因.解决办法有以下两种方法 1 第一种方法 1 找到Windows防火墙 2点击更改通知设置 3 关闭专用网络防火墙 现在就可以ping通这台机器了. 2  ...

  6. 【随笔】设置title标题图标为自定义图片

    第一步: 利用图标工具(有很多)制作图标文件(favicon.ico)上传到网站所在的服务器的根目录下,这个文件必须是16*16大小的图标文件. 第二步: 在<head></head ...

  7. Node.js Mongoose数据库连接失败 提示:Authentication failed

    mongoose.connect('mongodb://username:password@127.0.0.1:27017/qianxunkefu_db')换成mongoose.connect('mo ...

  8. 2.2、js基础---预解析和严格模式

    一.语言特性         1.预解析:js会把变量的声明(仅仅是声明)提到顶部,但是不会突破作用域.                 alert(a);var a= 12; //结果,undefi ...

  9. iOS 开发工具网页下载

    iOS 开发工具网页下载地址: https://developer.apple.com/downloads/

  10. MVVMLight - Messenger 2

    本篇介绍MvvmLight中一个重要的东东,那就是Messenger. (一)Messenger的基本组成 Messenger类用于应用程序的通信,接受者只能接受注册的消息类型,另外目标类型可以被指定 ...