2011-01-30 7 views
6

Tôi đang cố gắng sử dụng asp.net mvc 3 unobstructed javascript với jquery.IsValid (giá trị đối tượng) chưa được thực hiện bởi lớp này

tôi sau này Tutorial

Tôi chưa rõ làm thế nào để thực hiện bước một.

tôi nghĩ rằng nó đã được chỉ trọng IsValid nhưng tôi tiếp tục nhận được một lỗi vì vậy tôi phải làm gì đó sai

public class EmailAttribute : ValidationAttribute, IClientValidatable 
     { 

      public override bool IsValid(object value) 
      { 
       return base.IsValid(value); 
      } 

      public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) 
      { 
       yield return new ModelClientValidationEmailRule(FormatErrorMessage(metadata.GetDisplayName())); 
      } 
     } 

     public class ModelClientValidationEmailRule : ModelClientValidationRule 
     { 
      public ModelClientValidationEmailRule(string errorMessage) 
      { 
       base.ErrorMessage = errorMessage; 
       base.ValidationType = "email"; 
      } 
     } 

tôi nhận được lỗi này

IsValid(object value) has not been implemented by this class. The preferred entry point is GetValidationResult() and classes should override IsValid(object value, ValidationContext context). 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NotImplementedException: IsValid(object value) has not been implemented by this class. The preferred entry point is GetValidationResult() and classes should override IsValid(object value, ValidationContext context). 

Source Error: 

Line 13:   public override bool IsValid(object value) 
Line 14:   { 
Line 15:    return base.IsValid(value); 
Line 16:   } 
Line 17: 

Trả lời

5

Phương pháp IsValid nên chứa logic xác nhận của bạn .

Bạn chỉ đang gọi triển khai lớp cơ sở của IsValid, có vẻ như đang ném một NotImplementedException vì nó được dự kiến ​​sẽ bị ghi đè trong lớp con.

public override bool IsValid(object value) 
{ 
    //return true if 'value' is a valid email. Otherwise return false. 
} 
+0

Vẫn tự hỏi tại sao họ không làm IsValid là phương pháp trừu tượng. Bất cứ ai có thể giải thích điều đó? –