Domanda

sto usando dataannotations in un app MVC2 e sono un po 'scoraggiato quando si cerca di utilizzare le risorse di file RESX per i messaggi di errore.

Ho provato quanto segue ma continuo a ricevere l'eccezione "Un argomento attributo deve essere un'espressione costante, typeof espressione o creazione matrice espressione di un tipo di parametro attributo"

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

Continuo a ricevere il messaggio di errore se non sostituisco ErrorMessageResourceName con "Required" invece di Resources.ErrorMessages.Required.

Qualcuno può dirmi se sto facendo questo diritto?

È stato utile?

Soluzione

Sì, quello che stai facendo, alla fine è fondamentalmente corretto. Il ErrorMessageResourceName prende quello che suggerisce il nome, il nome di di una risorsa, non la risorsa stessa.

punti Resources.ErrorMessages.Required al reale (localizzata) messaggio di errore (risorse). Il nome di della risorsa è semplicemente "Required", ed il tipo del Resource Manager (usato per ErrorMessageResourceType) è la classe che contiene quella risorsa, in questo caso il Resources.ErrorMessages classe.

Quindi la vostra dichiarazione dovrebbe essere simile a questo:

[Required(ErrorMessageResourceType = typeof(Resources.ErrorMessages),
    ErrorMessageResourceName = "Required")]
public string Something { get; set; }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top