asp.net mvc 2.0的数据验证方法在网上已经很多很全面了,今天写这个主要是适合自己用,做一个记录以免以后忘记。但如果能为其它人提供解决问题的思路也是件好事情。
在做mvc网站的时候经常使用微软提供的数据模板来生产持久层,如:EF和linq to sql类等,这些自动生产的类不具备数据验证,我们在提交数据前先要多数据进行验证。
最原始的方法是在提交页面中对提交数据进行验证,这样的是最原始,也是很随性的行为,对后期维护产生麻烦。
微软提供了System.ComponentModel.DataAnnotations,可以在这基础上进行数据验证。
举例: EF和linq to sql生成的实体类 TB_eWeb_Area,我们要对TB_eWeb_Area行数据验证。
验证的数据类TB_eWeb_Area_Metadata.cs
代码
namespace eroomWeb.Model//命名空间需要和生成的实体类命名空间相同。
{
[MetadataType(typeof(TB_eWeb_Area_Metadata))]
public partial class TB_eWeb_Area
{
public class TB_eWeb_Area_Metadata
{
[DisplayName("AreaID")]
public int AreaID { get; set; }
[DisplayName("地区名称")]
[StringLength(10, ErrorMessage = "长度不能超过60")]
[Required(ErrorMessage = "地区名称不能为空")]
public string AreaName { get; set; }
[DisplayName("父类ID")]
[Required(ErrorMessage = "父类ID不能为空")]
public System.Nullable<int> APid { get; set; }
[DisplayName("地区编码")]
[StringLength(10, ErrorMessage = "长度不能超过10")]
[Required(ErrorMessage = "地区编码不能为空")]
public string AreaCode { get; set; }
}
}
}