ASP.NET MVC系列:添加模型的验证规则
首先,在模型类中引用 System.ComponentModel.DataAnnotations 命名空间;System.ComponentModel.DataAnnotations 命名空间提供定义 ASP.NET MVC 和 ASP.NET 数据控件的类的特性(即内置验证属性,你可以使用声明的任何类或属性)
在没有添加属性的特性的时候我们是可以添加空数据的,比如下面的Title字段
现在我们就为Movie类的属性都加上验证特性,然后再运行
public class Movie { public int ID { get; set; } [Required]//提交的数据为非空 public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } [Range(1, 100)]//提交的数据是1至00 public decimal Price { get; set; } [StringLength(5)]//提交字符串长度为5 public string Rating { get; set; } }
但是,当打开http://localhost:60534/Movies主页面的时候又报了异常—— “System.InvalidOperationException”类型的异常在 EntityFramework.dll 中发生,但未在用户代码中进行处理
因为我们对模型进行了更改,同样需要对应到数据库中,所以需要再次打开控制台,然后输入以下指令(每次添加验证特性或者是修改都需要执行)
add-migration AddDataAnnotationsMig
update-database
这次你可以很顺利的打开http://localhost:60534/Movies/index页面;现在我们打开Movie的create页面,直接点击提交,你会发现提交不了需要我们输入必要的数据,即使关闭了浏览器的活动脚本,后台代码依然需要通过验证才能提交数据
System.ComponentModel.DataAnnotations内置了很多特性,我们还可以通过DisplayFormat特性控制模型数据的输出样式