Trong MVC, ngoài những ValidationAttribute có sẵn như Required, Display ..
Đôi khi bạn cần gọi hàm check riêng của bạn cho 1 field name nào đó
ví dụ class:
public class AccountDTO
{
/// <summary>
/// Tên đăng nhập
/// </summary>
[Required(ErrorMessage = "Nhập tên đăng nhập")]
[Display(Name = "Tên đăng nhập")]
[CheckUsernameAvailable]
public string Username { get; set; }
//những field khác ....
}
Hãy lưu ý: CheckUsernameAvailable
cần kiểm tra username có ai sử dụng hay chưa
Ta có class tương ứng
public class CheckUsernameAvailable : ValidationAttribute
{
public CheckUsernameAvailable()
: base("")
{
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
//parse object qua string
string userName = Convert.ToString(value);
//thực hiện query database
//DAO execute here
var result = checkUsernameAvailable(userName);
if (!result)
{
//khai báo errorMsg
errorMsg = string.Format("Tên đăng nhập {0} đã có người sử dụng", userName);
return new ValidationResult(errorMsg);
}
}
return ValidationResult.Success;
}
}
Không có nhận xét nào:
Đăng nhận xét