09/10/2014

Custom valid MVC C# field

 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