MVCでクライアント側の検証を介して「データベース」チェックを実行する方法はありますか?
私は次のクラスを持っています
public class EmailCheck : ValidationAttribute,IClientValidatable
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
string sErrorMessage = "Email already exists";
return new ValidationResult(sErrorMessage);
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
ModelClientValidationRule validationRule = new ModelClientValidationRule();
validationRule.ValidationType = "checkemail";
validationRule.ErrorMessage = "Invalid Email Format";
validationRule.ValidationParameters.Add("param", "");
return new List<ModelClientValidationRule> { validationRule };
}
}
クライアント側の検証で、「checkemail」javascript関数で通常のjavascriptチェックを実行するだけでなく、「IsValid」メソッドをonkeyup /lostfocusでも呼び出すようにしたいと思います。
私が持っているjavascript関数は次のとおりです。
//Validation for Well-Formed Email
jQuery.validator.addMethod("checkemail",
function (value, element, param) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if (!emailReg.test(value))
return false;
return true;
});
jQuery.validator.unobtrusive.adapters.add("checkemail", ["param"], function (options) {
options.rules["checkemail"] = options.params.param;
options.messages["checkemail"] = options.message;
});
誰かが私を正しい方向に導いたり、似たようなもののチュートリアルを提供したりしていただければ幸いです。
ありがとう