標籤:
今天有個同事問到,在使用Entity Framework 的Database frist或model first時,怎麼在model上添加驗證的特性?
因為此時的Model是是VS 工具怎麼產生的,直接加attribute到modle類上是太現實也不合理。一個比較合理做法,就是用 buddy class的方式來實現。
比如有一個Model類: Movie。那我們就可以添加一個局部類檔案,局部類的內容如下:
using System.ComponentModel.DataAnnotations;
namespace Movies.Models
{
[MetadataType(typeof(MovieMetadata))]
public partial class Movie
{
class MovieMetadata
{
[Required(ErrorMessage="Titles are required")]
public string Title { get; set; }
[Required(ErrorMessage="The Price is required.")]
[Range(5,100,ErrorMessage ="Movies cost between $5 and $100.")]
public decimal Price { get; set; }
}
}
}
通過在這個局部類檔案中添加需要的驗證屬性就可以了。
參考:
http://www.asp.net/mvc/tutorials/older-versions/getting-started-with-mvc/getting-started-with-mvc-part7
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
Asp.net mvc + .net ef database first 或 model first 時如何添加驗證特性