Question

J'utilise DataAnnotations dans une application MVC2 et je suis un peu découragée lorsque vous essayez d'utiliser les ressources de fichiers RESX pour les messages d'erreur.

Je l'ai essayé ce qui suit, mais continue à recevoir l'exception « Un argument d'attribut doit être une expression constante, expression typeof ou création de la matrice expression d'un type de paramètre d'attribut »

[Required(ErrorMessage = Resources.ErrorMessages.Required)]
[Required(ErrorMessageResourceName = Resources.ErrorMessages.Required,
          ErrorMessageResourceType = typeof(Resources.ErrorMessages)]

Je continue à recevoir ce message d'erreur à moins que je remplace ErrorMessageResourceName avec « nécessaire » au lieu de Resources.ErrorMessages.Required.

Quelqu'un peut-il me dire si je fais ce droit?

Était-ce utile?

La solution

Oui, ce que vous faites à la fin est fondamentalement correcte. Le ErrorMessageResourceName prend son nom l'indique, le nom d'une ressource, pas la ressource elle-même.

points de Resources.ErrorMessages.Required à réelle (localisé) message d'erreur (ressource). nom de la ressource est simplement « nécessaire », et type du gestionnaire de ressources (utilisé pour ErrorMessageResourceType) est la classe qui contient cette ressource, dans ce cas, le Resources.ErrorMessages classe.

Donc, votre déclaration devrait ressembler à ceci:

[Required(ErrorMessageResourceType = typeof(Resources.ErrorMessages),
    ErrorMessageResourceName = "Required")]
public string Something { get; set; }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top