我需要在业务层验证我的模型。所以我班上有一个自定义验证器:
[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?
很多,
亚历