日期:2014-05-16 浏览次数:21072 次
在本节中将会给Movie
模型添加验证逻辑。并且确保这些验证规则在用户创建或编辑电影时被执行。
ASP.NET MVC 的核心设计信条之一是DRY: "不要重复自己(Don’t Repeat Yourself)"。ASP.NET MVC鼓励您指定功能或者行为,只做一次,然后将它应用到应用程序的各个地方。这可以减少您需要编写的代码量,并减少代码出错率,易于代码维护。
给ASP.NET MVC 和 Entity Framework Code First 提供验证支持是 DRY 信条的一次伟大实践。您可以在一个地方 (模型类) 中以声明的方式指定验证规则,这个规则会在应用程序中的任何地方执行。
让我们看看您如何在本电影应用程序中,使用此验证支持。
您将首先向Movie
类添加一些验证逻辑。
打开Movie.cs文件。在文件的顶部添加using
语句,从而引用System.ComponentModel.DataAnnotations
命名空间:
using System.ComponentModel.DataAnnotations;
注意,该命名空间不包含System.Web
。DataAnnotations 提供了一组内置的验证特性,您可以以声明的方式,应用于任何类或属性。
更新Movie
类,以利用内置的Required
、
StringLength
和Range
验证属性。以下面的代码为例,以应用验证属性。
public class Movie { public int ID { get; set; } [Required] public string Title { get; set; } [DataType(DataType.Date)] public DateTime ReleaseDate { get; set; } [Required] public string Genre { get; set; } [Range(1, 100)] [DataType(DataType.Currency)] public decimal Price { get; set; } [StringLength(5)] public string Rating { get; set; } }
运行该应用程序,您会再次得到了以下的运行时错误:
The model backing the 'MovieDBContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
我们将使用Migrations来更新 Schema。生成解决方案,然后打开软件包管理器控制台窗口,并输入以下命令:
add-migration AddDataAnnotationsMig
update-database