2012-03-02 26 views
25

デフォルトにErrorMessageがたくさん長く、私が希望よりも、次のとおりです。StringLengthの検証のためのデフォルトにErrorMessageを変更

フィールド{名} {StringLengthの}の最大の長さの文字列でなければなりません。

私のようなものに普遍的にそれを変更したいと思います:

最大長は{} StringLengthのです。

私は宣言し、すべての文字列のためにErrorMessageを指定重複しないようしたいと思います:私は、私はそこには普遍的にErrorMessageを変更する簡単な方法であることを覚えてかなり確信しているが、それを思い出すことができない

[StringLength(20, ErrorMessage="Maximum length is 20")] 
    public string OfficePhone { get; set; } 
    [StringLength(20, ErrorMessage="Maximum length is 20")] 
    public string CellPhone { get; set; } 

EDIT:

[StringLength(20)] 
    public string OfficePhone { get; set; } 

と、エラーメッセージを持っていると言う:

私が入力できるように

明確化のために、私は普遍的デフォルトにErrorMessageを変更しようとしています

最大長は20です。

答えて

47

あなたは、あなたのリソースファイルに多数のプロパティ

[StringLength(20, ErrorMessageResourceName = "StringLengthMessage", ErrorMessageResourceType = typeof(Resource))] 
public string OfficePhone { get; set; } 
[StringLength(20, ErrorMessageResourceName = "StringLengthMessage", ErrorMessageResourceType = typeof(Resource))] 
public string CellPhone { get; set; } 

に次のようにStringLength属性を指定し、(StringLengthMessageという名前の)文字列リソースを追加することができます

"Maximum length is {1}" 

メッセージは一度定義し、変数を持っていテストする長さに関してあなたの心を変えなければならない。

次を指定することができます。

  1. {0} - 名前
  2. {1} - 最大長
  3. {2} - 最小長

更新

重複をさらに最小限に抑えるには、StringLengthAttributeをサブクラス化できます。

パラメータを追加する場合は、FormatErrorMessageを上書きすることができます。次に、プロパティは次のようになります。

[MyStringLength] 
public string OfficePhone { get; set; } 
[MyStringLength] 
public string CellPhone { get; set; } 
+0

'ErrorMessageResourceName =" StringLengthMessage "、ErrorMessageResourceType = typeof(Resource))]を持たずにデフォルトを上書きする方法はありますか?] '私のスキーマのユーザー入力文字列ごとに? – snumpy

+0

いいえ。しかし、StringLengthAttributeをサブクラス化し、デフォルト値を指定することができます。私の答えの更新を見てください。 – bloudraak

+0

StrengLength(つまり '[MyStringLength(30)]'を指定することはできますか? – snumpy

6

お試し

[ StringLength(20, ErrorMessage = "Maximum length is {1}") ] 

私はそれが正しくなければならないと思います。

+0

エラーメッセージをリソースファイルに追加することは、一度しか指定されていないことを意味します。 – bloudraak

+1

@WernerStrydom、それは私の質問ですので、一度だけ指定する方法の回答を投稿してください。 – snumpy

+0

ええ、私はあなたの質問を後で読み返した後に気づいた。しかし、あなたは今あなたが探していた完全な答えを得たように見えます。 –

関連する問題