Ich verwende Datenannotationen in einer MVC2-App und bin ein wenig entmutigt, wenn Sie versuchen, RESX-Dateiressourcen für Fehlermeldungen zu verwenden.DataAnnotations und Ressourcen spielen nicht gut
Ich habe folgendes aber halten immer die Ausnahme versucht
[Required(ErrorMessage = Resources.ErrorMessages.Required)]
[Required(ErrorMessageResourceName = Resources.ErrorMessages.Required,
ErrorMessageResourceType = typeof(Resources.ErrorMessages)]
Ich halte „Ein Attribut Argument ein konstanter Ausdruck, typeof Ausdruck oder Array-Erstellungsausdruck eines Attributs Parametertyp sein muss“, dass die Fehlermeldung bekommen es sei denn, ich ersetze ErrorMessageResourceName
durch "Erforderlich" anstelle von Resources.ErrorMessages.Required
.
Kann mir jemand sagen, ob ich das richtig mache?
Kann ich die Errormessage-Eigenschaft verwenden, nur statt? Ich bevorzuge stark typisiert .... – devlife
@devlife: Nein. Nicht, wenn Sie Lokalisierung wünschen. Genau dafür sind die Ressourceneigenschaften. Genau so ist es bei einer * beliebigen * Lokalisierung. Irgendwann in der Kette müssen Sie eine Ressourcenfolge suchen, die auf dem Namen basiert. So funktionieren externalisierte Ressourcen. Und dies ist immer noch "stark typisiert" basierend auf der Ressourcenklasse, Sie haben nur keine Kompilierungssicherheit für den Ressourcennamen selbst. Wenn Sie das wollen, erstellen Sie einfach eine Klasse wie 'ResourceNames' mit den Zeilen' public const string Erforderlich = "Erforderlich" ', dann können Sie diese als Ressourcennamen angeben. – Aaronaught