2012-02-22 1 views
0

소스 코드 here의 새 EmailAddressAttribute 부분을 살펴 보았습니다. 코드는 다음과 같습니다. 이 클래스가 IClientValidatable 인터페이스를 구현할 때 클라이언트 쪽 스크립트가 있어야하는지 궁금합니다.MVC 미래 프로젝트에 EmailAddressAttribute 클라이언트 측 유효성 검사를위한 자바 스크립트가 누락 되었습니까?

public sealed class EmailAddressAttribute : DataTypeAttribute, IClientValidatable { 
     private static Regex _regex = new Regex(@"^([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$", RegexOptions.Compiled | RegexOptions.IgnoreCase); 

     public EmailAddressAttribute() 
      : base(DataType.EmailAddress) { 
      ErrorMessage = MvcResources.EmailAddressAttribute_Invalid; 
     } 

     public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { 
      yield return new ModelClientValidationRule { 
       ValidationType = "email", 
       ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()) 
      }; 
     } 

     public override bool IsValid(object value) { 
      if (value == null) { 
       return true; 
      } 

      string valueAsString = value as string; 
      return valueAsString != null && _regex.Match(valueAsString).Length > 0; 
     } 
    } 
} 

답변

0

클라이언트 검증이 눈에 띄지 않게하는 요소에 부착 HTML5 특성에 기초하여 이루어진다는 확인되는 (즉 <input type="text" data-val-required="The field is required." />).

자바 스크립트는 정적 라이브러리에 있으며 jquery 유효성 검사를 기반으로합니다.

관련 문제