Dans le modèle MVC4, l'un des attributs d'annotation de données utilisé est stringlength.
Par exemple:
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
Quels paramètres {0}, {1}, {2} (plus?) Sont légaux?
Edit: Pour être plus précis, je peux voir à partir des exemples et des essais et erreurs quelles sont les possibilités, mais j'aimerais voir une documentation complète.
Je ne trouve rien à ce sujet dans la documentation StringLengthAttribute .
L'index {0}
est le nom d'affichage de la propriété, {1}
est la MaximumLength
, {2}
est la MinimumLength
. Donc, votre message d'erreur sera formate en tant que "The Foo must be at least 6 characters long."
Je n'ai pas vu de documentation non plus, mais la méthode FormatErrorMessage
pour la StringLengthAttribute
ressemble à ceci:
public override string FormatErrorMessage(string name)
{
EnsureLegalLengths();
string format = ((this.MinimumLength != 0) && !base.CustomErrorMessageSet) ? DataAnnotationsResources.StringLengthAttribute_ValidationErrorIncludingMinimum : base.ErrorMessageString;
return String.Format(CultureInfo.CurrentCulture, format, new object[] { name, MaximumLength, MinimumLength });
}
Une recherche Google plus longue que prévue m'a amené à aborder ce vieux sujet avant que je puisse commencer à obtenir des pistes solides. Je vais donc mettre ceci ici et j'espère que cela aidera tout le monde dans la même situation:
L'inspection du code pour StringLengthAttribute que MS a placé sur GitHub confirme la logique résidant dans la méthode FormatErrorMessage:
// it's ok to pass in the minLength even for the error message without a {2} param since String.Format will just
// ignore extra arguments
return String.Format(CultureInfo.CurrentCulture, errorMessage, name, this.MaximumLength, this.MinimumLength);
Ainsi, "0", "1" et "2" correspondent à "nom" (de la propriété), "MaximumLength" et "MinimumLength" en conséquence.
Je parie que la même méthode peut être appliquée à tous les autres attributs de validation pour vérifier leurs paramètres de formatage en conséquence; Je n'ai pas pu trouver d'autre documentation pour cette information autrement.