2012-11-16 14 views
29

MVC4テンプレートで使用されるデータ注釈属性の1つは、文字列長です。例えばerrormessageのstringlength属性にはどのようなパラメータがありますか?

:(もっと)

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

どのパラメータ{0}、{1}、{2}が合法ですか?

編集:具体的には、例と試行錯誤の可能性を見ることができますが、私はいくつかのハードな文書を見たいと思います。

StringLengthAttribute documentationでこれについて何も見つかりません。

答えて

41

{0}指数は{2}MinimumLengthで、{1}MaximumLengthで、プロパティの表示名です。だから、あなたのエラーメッセージが"The Foo must be at least 6 characters long."

+20

試行錯誤以外に、どうすればこのことを知ることができますか? [FormatErrorMessage](http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute.formaterrormessage%28v=vs.110%29.aspx)のStringLengthAttributeクラス自体に実装されていますか?方法?これは文書化されていますか? –

+2

'MinimumLength'を指定しなかった場合はどうなりますか? 'MaximumLength'がゼロの間に設定された唯一のプロパティーは何ですか? – Shimmy

+1

この情報はどこにありますか? – Lopsided

12

としてギになります私はどちらか任意のドキュメントを見ていないが、StringLengthAttributeためFormatErrorMessage方法は、次のようになります。はい、よく私は私が本当に求めていますどのような推測

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 }); 
} 
関連する問題