Asp.net mvc + .net EF database first 或 model first 时如何添加验证特性

·

在使用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
    {
        private class MovieMetadata  //这个类名随便起,相当于把这个类里面的东西追加给Movie,这个追加是用[MetadataType]实现的
        {
            [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.cnblogs.com/ITHelper/archive/2013/01/08/2851442.html

另外,对于有文件上传的时候,还可以写一个扩展的model,比如:

public class MovieViewModel
{
[FileExtensions(Extensions = “jpg,gif,png”, ErrorMessage = “jpg,gif,png”)]
public HttpPostedFileBase CoverImageFile { get; set; }

public Movie movie { get; set; }

}

这样,在给control生成强类型view的时候就用MovieViewModel。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理