MVC4,确定并调用自定义验证器

时间:2015-01-29 10:21:36

标签: asp.net-mvc-4 validation

我需要在业务层验证我的模型。所以我班上有一个自定义验证器:

[MetadataType(typeof(ToolMetaData))]
public partial class Tool
{
   public string PartNumber { get; set; }
}
public class ToolMetaData
{
    [Required]
    [ValidPartNumber]
    public string PartNumber { get; set; }
}
public class ValidPartNumberAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
       ....
    }
}

我需要确定,如果我的类的一个字段定义了ValidPartNumber验证器并调用它。

对于必需的验证员,我使用以下内容:

Tool t = new Tool();
ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForProperty(null, 
                                                  t.GetType(), "PartNumber");
if (metadata.IsRequired)
{
  validate..
}

但是如果我的字段定义了ValidPartNumber验证器并且之后调用了怎么办?

我是否需要自定义DataAnnotationsModelMetadataProvider和DataAnnotationsModelValidator?

很多,

亚历

0 个答案:

没有答案