2011-01-30 24 views
6

Estoy intentando usar asp.net mvc 3 javascript sin obstrucciones con jquery.IsValid (valor del objeto) no ha sido implementado por esta clase

Estoy siguiendo este Tutorial

no tengo muy claro cómo hacer el paso uno.

Me pareció que era simplemente anulando IsValid pero aparece un error por lo que debe estar haciendo algo mal

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"; 
      } 
     } 

consigo este error

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: 

Respuesta

5

El método IsValid debería contener su lógica de validación .

Acaba de invocar la implementación de la clase base de IsValid, que parece arrojar una NotImplementedException porque se prevé que se invalidará en la subclase.

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

Todavía me pregunto por qué no hicieron de IsValid un método abstracto. ¿Alguien puede explicar eso? –

Cuestiones relacionadas