2012-11-16 12 views
29

W szablonie MVC4 jednym z atrybutów adnotacji danych jest długość łańcucha.Jakie parametry przyjmuje errormessage atrybut stringlength?

Na przykład

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

Co parametrów {0}, {1}, {2} są dozwolone (więcej?)?

Edycja: Aby być bardziej szczegółowym, widzę na przykładzie i próbę i błąd, jakie są możliwości, ale chciałbym zobaczyć jakąś twardą dokumentację.

Nie mogę znaleźć nic na ten temat w StringLengthAttribute documentation.

Odpowiedz

41

Indeks {0} jest wyświetlana nazwa majątku, {1} jest MaximumLength, {2} jest MinimumLength. Tak, wiadomość o błędzie będzie mrówczan jako "The Foo must be at least 6 characters long."

+20

Tak, dobrze myślę, co ja naprawdę pytaniem jest, skąd mogę to wiedzieć, oprócz prób i błędów. Jest zaimplementowany w samej klasie StringLengthAttribute w [FormatErrorMessage] (http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute.formaterrormessage%28v=vs.110%29.aspx) metoda? Czy to jest udokumentowane? –

+2

Co jeśli 'MinimumLength' nie został określony? A jeśli co, jeśli jest to jedyna właściwość, która została ustawiona, a "Maksymalna długość" wynosi zero? – Shimmy

+1

Gdzie można znaleźć te informacje? – Lopsided

12

Nie widziałem żadnej dokumentacji albo, ale metoda FormatErrorMessage dla StringLengthAttribute wygląda następująco:

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 }); 
} 
Powiązane problemy