Latar Belakang:
Validasi model diperlukan untuk memastikan bahwa data yang diterima yang kami terima valid dan benar sehingga kami dapat melakukan pemrosesan lebih lanjut dengan data ini. Kami dapat memvalidasi model dalam metode tindakan. Atribut validasi bawaan adalah Compare, Range, RegularExpression, Required, StringLength. Namun kami mungkin memiliki skenario di mana kami memerlukan atribut validasi selain yang sudah ada di dalamnya.
Atribut Validasi Kustom
public class EmployeeModel
{
[Required]
[UniqueEmailAddress]
public string EmailAddress {get;set;}
public string FirstName {get;set;}
public string LastName {get;set;}
public int OrganizationId {get;set;}
}
Untuk membuat atribut validasi khusus, Anda harus mendapatkan kelas ini dari ValidationAttribute.
public class UniqueEmailAddress : ValidationAttribute
{
private IEmployeeRepository _employeeRepository;
[Inject]
public IEmployeeRepository EmployeeRepository
{
get { return _employeeRepository; }
set
{
_employeeRepository = value;
}
}
protected override ValidationResult IsValid(object value,
ValidationContext validationContext)
{
var model = (EmployeeModel)validationContext.ObjectInstance;
if(model.Field1 == null){
return new ValidationResult("Field1 is null");
}
if(model.Field2 == null){
return new ValidationResult("Field2 is null");
}
if(model.Field3 == null){
return new ValidationResult("Field3 is null");
}
return ValidationResult.Success;
}
}
Semoga ini membantu. Bersulang !
Referensi