2012-11-16 11 views
29

Nel modello MVC4 uno degli attributi di annotazione dati utilizzati è stringlength.Quali parametri accetta l'errore di attributo stringlength?

Ad esempio:

[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 

Quali parametri {0}, {1}, {2} sono legali (più?)?

Modifica: per essere più specifici, posso vedere dall'esempio e prove ed errori quali sono le possibilità, ma mi piacerebbe vedere una certa documentazione.

Non riesco a trovare nulla su questo nel StringLengthAttribute documentation.

risposta

41

L'indice {0} è il nome visualizzato della proprietà, {1} è il MaximumLength, {2} è il MinimumLength. Quindi, il messaggio di errore sarà formiato come "The Foo must be at least 6 characters long."

+20

Sì, be 'Credo che quello che sto veramente chiedendo è, come posso saperlo, a parte prove ed errori. È implementato nella classe StringLengthAttribute stessa in [FormatErrorMessage] (http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute.formaterrormessage%28v=vs.110%29.aspx) metodo? È documentato? –

+2

Cosa succede se 'MinimumLength' non è stato specificato? E se fosse l'unica proprietà impostata mentre 'MaximumLength' è zero? – Shimmy

+1

Dove si trova questa informazione? – Lopsided

12

non ho visto alcuna documentazione o, ma il metodo FormatErrorMessage per la StringLengthAttribute appare così:

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 }); 
} 
Problemi correlati