MVC5中Model层开发数据注解
ASP.NET MVC5中Model层开发,使用的数据注解有三个作用:
- 数据映射(把Model层的类用EntityFramework映射成对应的表)
- 数据验证(在服务器端和客户端验证数据的有效性)
- 数据显示(在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] |
可视化设计器在引用组件成员时可以显示指定的说明 |
1、数据验证相关的数据注解继承ValidationAttribute类,都有一个ErrorMessage属性用来显示错误提示。
如:[Required(ErrorMessage="此项不能为空")]。
2、数据映射中Int类型和DateTime类型在数据库中默认不允许为NULL,如果需要设置为NULL,使用可空类型即可(使用Int?或者DateTime?)。
初学ASP.NET MVC顺便总结了一下数据注解(并不包含所有的内置数据注解),每个数据注解的具体使用请查询MSDN,不当的地方望指正。
MVC5中Model层开发数据注解的更多相关文章
- MVC5中Model层开发数据注解 EF Code First Migrations数据库迁移 C# 常用对象的的修饰符 C# 静态构造函数 MSSQL2005数据库自动备份问题(到同一个局域网上的另一台电脑上) MVC 的HTTP请求
MVC5中Model层开发数据注解 ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证( ...
- MVC5中Model设置属性注解
ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...
- 在ASP.NET Core中使用Apworks开发数据服务:对HAL的支持
HAL,全称为Hypertext Application Language,它是一种简单的数据格式,它能以一种简单.统一的形式,在API中引入超链接特性,使得API的可发现性(discoverable ...
- ASP.NET MVC5(四):数据注解和验证
前言 用户输入验证的工作,不仅要在客户端浏览器中执行,还要在服务端执行.主要原因是客户端验证会对输入数据给出即时反馈,提高用户体验:服务器端验证,主要是因为不能完全信任用户提供的数据.ASP.NET ...
- Django中model层详解
#!/usr/bin/env python# _*_ coding:utf-8 _*_ from django.db import models class UserType(models.Model ...
- ASP.NET MVC5中的数据注解
ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...
- ASP.NET MVC5中的数据注解(转载)
ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...
- model 数据注解
https://www.cnblogs.com/leoxuan/articles/6555396.html ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Mode ...
- 【ASP.NET MVC系列】浅谈数据注解和验证
[ASP.NET MVC系列]浅谈数据注解和验证 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google C ...
随机推荐
- oracle中的存储过程例子
用了两年Oracle还没写过存储过程,真是十分惭愧,从今天开始学习Oracle存储过程,完全零起点,争取每日一篇学习笔记,可能开始认识的不全面甚至有错误,但坚持下来一定会有收获. . 建立一个存储过程 ...
- Application,Session和Cookie
做ASP.NET,肯定会和这几个对象打交道,这些也是基础面试的常见题目,总结一下还是必要的,好在大神已经总结好了,直接参考就好了: http://www.cnblogs.com/breezeblew/ ...
- 11g RAC R2 体系结构---进程,日志
进程结构:Overview of Oracle Clusterware Platform-Specific Software Components When Oracle Clusterware is ...
- 每日一“酷”之difflib
介绍:difflib 比较序列.该模块包含一些用来计算和处理序列直接差异的工具.她对于比较文本尤其用,其中包含的函数可以使用多种常用差异格式生成报告. 测试数据(splitlines()按行划分为序列 ...
- pipe/popen/fifo
pipe(管道) 专用于父子进程通信, 函数原型 int pipe(int fd[2]) fd[0]表示输入, fd[1]表示输出 如果父子进程要双向通信, 可以通过类似信号的功能进行控制, 也可以简 ...
- 常见前端面试题之HTML/CSS部分
转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html Doctype是什么?如何触发严格模式与混杂模式模式?区分它们有何意义? ...
- [MVC] - 异步调用后台的常用方法。
1. 直接调用Action @Html.Action("GetTopArticle", "Home") 2. 通过url, 并用Jquery异步加载. < ...
- LintCode-Majority Number
Given an array of integers, the majority number is the number that occurs more than half of the size ...
- 20145120黄玄曦 《java程序设计》 寒假学习总结
1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...
- Ubuntu修改屏幕默认亮度
sudo gedit /etc/default/grub 把GRUB_CMDLINE_LINUX="" 改成GRUB_CMDLINE_LINUX="acpi_backli ...