为外部库中定义的模型编写ASP.NET自定义验证器可以通过以下步骤实现:
ValidationAttribute
类。可以通过重写 IsValid
方法来实现验证逻辑。在该方法中,可以访问外部库中的模型并执行自定义的验证规则。ErrorMessageResourceType
和 ErrorMessageResourceName
属性来指定外部资源文件中的错误消息。[CustomValidation(typeof(自定义验证器类), "验证方法名")]
来实现。GlobalFilters
或 ModelValidatorProviders
中,以确保在模型验证过程中自动应用自定义验证规则。下面是一个示例:
ExternalModel
,其中包含需要验证的属性 Value
。ExternalModel
。ExternalModelValidator
,继承自 ValidationAttribute
。using System.ComponentModel.DataAnnotations;
using ExternalLibrary; // 外部库的命名空间
public class ExternalModelValidator : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var externalModel = (ExternalModel)validationContext.ObjectInstance;
// 执行自定义验证规则
if (externalModel.Value == "SomeInvalidValue")
{
return new ValidationResult(ErrorMessage ?? "Invalid value.");
}
return ValidationResult.Success;
}
}
public class ExternalModel
{
[ExternalModelValidator]
public string Value { get; set; }
}
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
// 注册自定义验证器
GlobalFilters.Filters.Add(new MyCustomValidatorAttribute());
}
}
这样,在使用外部库中的模型时,ASP.NET将会自动应用自定义验证器,并执行自定义的验证规则。
领取专属 10元无门槛券
手把手带您无忧上云