2013-03-14 18 views
7

同じ属性を持つモデルの多くのプロパティを宣言する必要があります。私はMVCでこれを行う方法があるのだろうかと思っていた。MVC - 同じ属性、異なる名前のモデルで複数のプロパティを宣言する方法がありますか

[Required] 
[Range(0, 4, ErrorMessage = "Integrity is required.")] 
public int Integrity { get; set; } 

[Required] 
[Range(0, 4, ErrorMessage = "Empathy is required.")] 
public int Empathy { get; set; } 

私はそれらの2つの属性(必須と範囲)を使用するフィールドの束を持って、異なる唯一のものは、プロパティの名前です。繰り返しの少ない方法でこれらを宣言する方法はありますか?

+0

..あなたはこれを成し遂げるためにどのようにヒントを与えるだろう、このリンクを見てください。必要なすべてのロジックを記述することができます。 –

答えて

1

要件にはビルトイン機能はありませんが、この機能はModelValidatorProvidersを使用して実現できます。独自のプロバイダを作成してMVCに渡す必要があります。 注釈の種類と適用されるべきプロパティの配列を受け入れる独自の属性を作成します。その属性に必要なロジックを書き込むことができます。 は、それは確かにあなたはValidationAttributeクラスを使用して、カスタム属性を作成し、そのIsValidの()メソッドを上書きすることができます

CustomModelValidatorProvider

関連する問題