我有一个视图模型用于改变密码,它使用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
属性?
幸运的是,这是行得通的。不幸的是,它不会达到我的目的,因为创建新属性将删除jQuery客户端验证,并且仅在回发时进行验证。我会将此标记为答案,但是我不会在我的项目中使用它。不管怎么说,多谢拉! – Kehlan
对不起,我更新了答案,你需要做的额外工作:) –
CompareAttributeAdapter类似乎是System.Web.Mvc组件的内部,你怎么能够使用它? – Konamiman