1

パスワードの変更に使用される ViewModel があり、Compare次のように DataAnnotation を使用します。

[Display(Name = "New Password")]
public string New { get; set; }

[Compare("New")]
[Display(Name = "Confirm Password")]
public string ConfirmPassword { get; set; }

残念ながら、属性は比較されたプロパティCompareの属性を利用していません。Display

エラー メッセージは次のように表示されます。

'Confirm Password' and 'New' do not match.

これは比較プロパティの属性を使用していますが、比較プロパティのDisplay属性は使用していません。

また、パラメーターを使用しないことも指定しますErrorMessage。これは、プロパティ名を既存の属性から取得するだけでなく、ハードコーディングすることになるためです。このソリューションを可能な限りベストプラクティスとして維持したいと思います。

比較したプロパティCompareの属性を利用する属性を作成するにはどうすればよいですか?Display

4

2 に答える 2