2010-08-01 6 views
0

Ceci est ma classe Modelvalidation MVC de date à l'aide DataAnnotations

public class Model 
{ 
    [DataType(DataType.DateTime, ErrorMessage = "My error message")] 
    public DateTime Day { get; set; } 
} 

Lorsque je tente d'entrer une valeur incorrecte par exemple « notdate » je suis l'erreur « La valeur « notdate » est pas valable pour le jour. " au lieu de mes ErrorMessage spécifié "Mon message d'erreur". J'utilise ASP.NET MVC 3.0 bêta.

C'est un bug?

Répondre

0

Non, il s'agit de la fonctionnalité par défaut du classeur de modèle existant.

Le DataType n'a rien à voir avec la liaison de modèle de base et ne remplacera pas les erreurs de liaison de modèle de base.

1

Il y a quelques petites choses à noter sur le comportement que vous décrivez. D'abord, vous recevez cette erreur, car une exception est levée lorsque vous tentez d'affecter la valeur de chaîne 'notdate' à un champ DateTime. Lorsque cela se produit, tous les messages de validation qui peuvent avoir été associés au champ seront remplacés par le message générique: La valeur '{0}' n'est pas valide pour {1}. Deuxièmement, la base DataTypeAttribute n'effectue aucune validation sur le champ. En utilisant réflecteur, vous verrez que la méthode DataTypeAttribute.IsValid() est déclarée comme suit:

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

Hope this helps.

Questions connexes