Wenn Sie die Eigenschaft eines Modellobjekts mit dem Required
-Attribut dekorieren und nicht ErrorMessage
oder ResourceType/Name
angeben, erhalten Sie die Validierungsnachricht in der interpolierten Form "Das Feld {0} ist erforderlich.", wobei Parameter 0 ist der Wert des Attributs DisplayName
dieser Eigenschaft.
Ich möchte diese Standardzeichenfolge in etwas anderes ändern, aber ich möchte die generische Art davon beibehalten, das heißt, ich möchte nicht ErrorMessage
oder ResourceType/Name
für jede Eigenschaft des Modellobjekts angeben. Wo ist der Standard-String gespeichert und wie kann ich ihn ändern?
Die Ableitung Ihres eigenen Attributs ist eine faire Option und hat wahrscheinlich den geringsten Overhead, um loszulegen, aber Sie müssen zurückgehen und alle Ihre bestehenden Verwendungen von [Required]
ändern. Sie (und alle anderen in Ihrem Team) müssen sich auch daran erinnern, das Richtige für die Zukunft zu verwenden (und Neulingen beizubringen).
Eine Alternative ist das Ersetzen von ModelMetadataProviders
und ModelValidatorProviders
, um Zeichenfolgen aus einer Ressourcendatei zurückzugeben. Dies vermeidet die obigen Nachteile. Es legt auch die Grundlage für das Ersetzen von Nachrichten für andere Attribute (z. B. MaxLengthAttribute
) und für die Unterstützung zusätzlicher Sprachen.
Hier ist die vollständige Quelle , Dokumentation und ein Blog post beschreibt die Verwendung.
Tags und Links asp.net-mvc-3 c# data-annotations