พื้นหลัง:
จำเป็นต้องมีการตรวจสอบโมเดลเพื่อให้แน่ใจว่าข้อมูลที่ได้รับที่เราได้รับนั้นถูกต้องและถูกต้องเพื่อให้เราสามารถประมวลผลเพิ่มเติมกับข้อมูลนี้ได้ เราสามารถตรวจสอบโมเดลด้วยวิธีการดำเนินการ แอตทริบิวต์การตรวจสอบความถูกต้องในตัว ได้แก่ Compare, Range, RegularExpression, Required, StringLength อย่างไรก็ตามเราอาจมีสถานการณ์ที่เราต้องการแอตทริบิวต์การตรวจสอบความถูกต้องนอกเหนือจากที่มีอยู่ในตัว
แอตทริบิวต์การตรวจสอบที่กำหนดเอง
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;}
}
ในการสร้างแอตทริบิวต์การตรวจสอบความถูกต้องที่กำหนดเองคุณจะต้องได้รับคลาสนี้จาก 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;
}
}
หวังว่านี่จะช่วยได้ ไชโย!
อ้างอิง